加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

怎么运用mysql dump

发布时间:2023-08-14 13:25:29 所属栏目:MySql教程 来源:
导读:本篇内容主要讲解“怎么使用mysql dump”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用mysql dump”吧!一、在客户端配置mysqlmysqldum

本篇内容主要讲解“怎么使用mysql dump”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用mysql dump”吧!

一、在客户端配置mysql

mysqldump是一个客户端工具,可以直接将数据备份到到本地。在客户端配置mysql非常简单,两步走:

1、去服务端的bin目录下直接将mysql.exe和mysqldump.exe复制到本地,比如我复制到C:\mysql下;

2、配置环境变量,将C:\mysql直接加入Path中就可以了。

二、mysqldump

1、导出某用户下所有数据库,在这里我导出root下所有的数据库

mysqldump -uroot -p - -all-databases>C:\Users\QuJian\Desktop\a.dmp 然后会提示你输入root的密码,就会进入备份过程。

解释:mysqldump是在操作系统界面下执行的,这一点需要牢记。mysqldump是备份命令,告诉mysql我要导出数据,-u表明连接哪一个导出用户,-p用户密码,- -all-databases意思是导出此用户下所有数据库,>指出备份导出的位置,在这里我把他导出到C:\Users\QuJian\Desktop(桌面)了,备份文件名为a.dmp,这个后缀名不止可以是dmp,还可以是.text,.sql等等,后缀名没啥要求,其实都是sql脚本文件。用Notepad++打开这个备份文件,会发现对于库的备份文件,大概可以分为创建数据库判断语句---删除表---创建表---锁表---禁用索引---插入数据--启用索引---解锁表这几部分。

2、导出用户下某些数据库

mysqldump -uroot -p - -databases oa tsshop>C:\Users\QuJian\Desktop\a.dmp

解释:- -database指明导出哪个库,这里导出了oa和tsshop两个库

3、导出某些表

mysqldump -uroot -p - -database tsshop - -tables himall_active>C:\Users\QuJian\Desktop\a.dmp

解释:- -table参数表名导出哪些表,用Notepad++打开备份文件,可以发现,备份文件由:删除表--创建表--导入数据组成

4、带条件的表导出

mysqldump -uroot -p - -database tsshop - -tables himall_active - -where='id=1'>C:\Users\QuJian\Desktop\a.dmp

mysqldump -uroot -p - -database tsshop - -tables himall_active - -where="name='张三'">C:\Users\QuJian\Desktop\a.dmp

解释:- -where参数表明导出表的条件

5、只导出表结构不导出具体数据

mysqldump -uroot -p - -databases tsshop - -no-data>C:\Users\QuJian\Desktop\a.dmp

解释:- -no-data参数指定只导出表结构,不导出表数据

6、注意,我们是在客户端操作的,那么,对于前面的每一个导出操作,不论是库还是表,我们都要指出源服务器地址,使用参数- -host

mysqldump -uroot -p - -host=10.0.0.47 - -databases tsshop - -no-data>C:\Users\QuJian\Desktop\a.dmp

7、导出存储过程和自定义函数

mysqldump -uroot -p - -host=10.0.0.47 - -databases tsshop - -routines>C:\Users\QuJian\Desktop\a.dmp

解释:- -routines参数指出需要导出存储过程和自定义函数,除了- -all-databases会默认备份存储过程和自定义函数,单独备份数据库,表是不会带存储过程和自定义函数的。

8、导出事件

mysqldump -uroot -p - -host=10.0.0.47 - -databases tsshop- -routines - -events>C:\Users\QuJian\Desktop\a.dmp

解释:- -events参数表示将事件也导出来,除了- -all-databases会默认备份事件,单独备份数据库,表是不会带事件的

9、- -add-drop-database

mysqldump -uroot -p - -host=10.0.0.47 - -databases tsshop- -routines - -events  - -add-drop-database>C:\Users\QuJian\Desktop\a.dmp

解释:- -add-drop-database的意思是在生成的sql语句中添加drop database语句,这个用于此用户下本来就有这个数据库,在导入之前先删除同名数据库,再新建立数据库。不过我感觉没啥用,因为如果不声明这个参数,sql语句中就不会创建同名数据库,只用删除表重建表就可以了,照样可以导入数据。

10、- -add-drop-table

mysqldump -uroot -p - -host=10.0.0.47 - -databases tsshop- -routines - -events - -add-drop-table>C:\Users\QuJian\Desktop\a.dmp

解释: - -add-drop-table意思是在导入表之前先删除同名表,这个参数是一个默认参数,如果想取消这个默认参数可以使用- -skip-add-drop-table

11、- -add-locks

mysqldump -uroot -p - -host=10.0.0.47 - -databases tsshop- -routines - -events - -add-locks>C:\Users\QuJian\Desktop\a.dmp

解释:- -add-locks意思是在导出每个表之前加锁,导出之后再释放锁,这个也是默认打开的,取消这个参数使用- -skip-add-locks

12、- -comments

mysqldump -uroot -p - -host=10.0.0.47 - -databases tsshop- -routines - -events - -comments>C:\Users\QuJian\Desktop\a.dmp

解释:- -comments意思是导出注释信息,取消可以使用- -skip-comments

13、- -force

mysqldump -uroot -p - -host=10.0.0.47 - -databases tsshop- -routines - -events - -force>C:\Users\QuJian\Desktop\a.dmp

解释:- -force意思是忽略导出中的sql错误

14、- -triggers

mysqldump -uroot -p - -host=10.0.0.47 - -databases tsshop- -routines - -events - -triggers>C:\Users\QuJian\Desktop\a.dmp

解释:- -triggers意思是导出触发器,此选项默认开启,不像- -routines - -events 不会默认开启,取消使用- -skip-triggers

三、导入数据

导入方式有两种:

1、直接在操作系统级别上进行导入操作

导入整个库:mysql -h 10.0.0.44 -uroot -p<C:\Users\QuJian\Desktop\a.dmp

解释:-h是目标数据库的地址,意思是将a.dmp导入到10.0.0.44这个库

在这里,我需要特别说一下字符集,因为10.0.44这个数据库是我新建立的,default-character-set和character-set-server都是utf8,但是导出数据由于存在emoji字符,所以数据库的字符集是utf8mb4,这样在导入的时候就会报字符集的错误,因此需要这样解决,首先,修改目标库的字符集,将其修改为utf8的超集utf8mb4,然后再导入数据,导入数据的时候需要加参数- -default-character-set=utf8mb4,整个导入命令就变成了:

mysql -h 10.0.0.44 -uroot -p - -default-character-set=utf8mb4<C:\Users\QuJian\Desktop\a.dmp

导入某张表:mysql -h 10.0.0.44 -uroot -p  - -default-character-set=utf8mb4 tsshop<C:\Users\QuJian\Desktop\a.dmp

2、登录数据库执行导入

首先登录数据库:

mysql -h 10.0.0.44 -uroot -p - -default-character-set=utf8mb4

然后进行导入操作。

导入整个库:

mysql>source C:\Users\QuJian\Desktop\a.dmp;

将某张表导入tsshop这个库:

mysql>use tsshop;

mysql>source C:\Users\QuJian\Desktop\a.dmp;

到此,相信大家对“怎么使用mysql dump”有了更深的了解,不妨来实际操作一番吧!

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章