重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇内容主要讲解“怎么使用MySQL dump”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用mysql dump”吧!
辽阳县网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。成都创新互联自2013年创立以来到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联。
一、在客户端配置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
在这里,我需要特别说一下字符集,因为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
首先登录数据库:
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”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!