最近更新时间:2021-01-06 17:56:18
mysqldump是MySQL官方提供的逻辑备份工具,它可以将原数据库中的数据对象和数据转换为SQL语句,并将这些SQL语句重放到目的数据库中,从而达到迁移数据的目的。同时,mysqldump支持将结果输出为CSV,带分隔符的文本,XML等格式。
详细的使用手册可以参见官方文档:https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html
备份整个数据库
1.进入到MySQL的bin目录下执行
mysqldump -h 192.168.1.1 -uroot -ppwd dbname > \temp\db.sql
-h 选项指定机器的ip
-u 选项指定使用的用户名
-p 选项指定密码,密码和选项间不要有空格
dbname 需要备份的数据库名
2.如果需要指定数据库端口,也可以使用下面语句来备份数据库表结构
mysqldump -h ip -P3306 -uroot -ppwd dbname > \temp\db.sql
3.只备份表结构,不备份数据
mysqldump -uroot -ppwd -d dbname > \temp\db.sql·
4.备份单张数据表
mysqldump -uroot -ppwd dbname tablename > \temp\db.sql
5.备份多张数据表
mysqldump -uroot -ppwd dbname table1 table2 > \temp\db.sql
6.远程备份
mysqldump -h ip -uroot -ppwd dbname > \temp\db.sql
将上一步导出的数据导入到数据库中。可以通过这两种方式进行:
1.利用管道重定向
mysql -h ip -uroot -ppwd -f < \temp\db.sql
2.用MySQL客户端
先登录MySQL客户端,然后执行:
source \temp\db.sql;
·–compress 客户端服务端均支持压缩协议时开启。(暂时不需要)
·–host=host_name 远程MySQL服务器的host。
·–password=password 远程MySQL服务器用户的密码。
·–port=port_num 远程MySQL服务器端口号。
·–user=user_name 远程MySQL服务器用户名。
·–max_allowed_packet 最大包长度,保证服务器客户端相适应。 (暂时不需要)
·–net_buffer_length 服务端的该参数至少要大于等于客户端参数 。(暂时不需要)
·–no-defaults 禁止读取配置文件,以免实例中有未知配置文件影响执行结果。
·–force 在dump过程中中遇到错误也继续执行。
·–log-error=file_name 错误日志输出文件名设置。
·–character-sets-dir=dir_name 指定已安装字符集目录。
·–default-character-set=charset_name 指定默认字符集。
·–no-set-names 禁用输出文件中包含set names语句。
·–set-charset 在输出文件中添加set names语句。
·–apply-slave-statements 在slave执行备份时,会在change master to 语句前执行stop slave,在备份结束后执行start slave。
·–dump-slave=2 在slave执行备份,并附带change master to 信息,该信息是注释,并不会生效。(这个参数没有用处,因为我们接下来增量的备份还是从这个节点,master的信息并没有什么用)
·–master-data=2 备份,以注释的形式导出master信息。该参数默认关闭–lock-tables,打开–lock-all-tables。开启–delete-master-logs。需要reload权限。删除binlog,这个参数慎重使用。
·–all-databases 备份全部表。
·–databases 备份指定数据库。
·–events 从mysql.event 表备份事件,这时帐号需要对mysql库有访问权限。
·–no-data 只备份表结构。
·–routines 从mysql.proc表备份函数和存储过程。需要对mysql库有访问权限。
·–tables 备份指定表。
·–triggers 备份触发器,默认开启,必须对备份的表有TRIGGER权限。
·–skip-triggers 关闭触发器备份。
·–extended-insert 使用multiple-row insert 语法。
·–add-locks 在结果文件中每个表前后分别添加LOCK TABLES,UNLOCAK TABLES。这个会加速insert。
·–lock-all-tables 备份开启前使用全局锁。默认关闭–single-transaction,–locak-tables。
·–lock-tables 备份每个数据库前,在会对该库下所有表加读锁。数据库级别一致性。
纯净模式