MySQL数据的备份与导入

最近更新时间:2021-01-06 17:56:18

查看PDF

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;

mysqldump常用参数

·–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 备份每个数据库前,在会对该库下所有表加读锁。数据库级别一致性。

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

  • 内容不全,不深入
  • 内容更新不及时
  • 描述不清晰,比较混乱
  • 系统或功能太复杂,缺乏足够的引导
  • 内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈