mysqldump数据库备份还原

mysqldump备份常见用法

备份

1、导出整个数据库(包括数据库中的数据)

mysqldump -u username -p “password” dbname > dbname.sql

2、导出数据库结构(不含数据)

mysqldump -u username -p “password” -d dbname > dbname.sql

3、导出数据库中的某张数据表(包含数据)

mysqldump -u username -p “password” dbname tablename > tablename.sq

mysqldump -uroot -p “password” -B dbname –table tablename > tablename.sql

4、导出数据库中的某张数据表的表结构(不含数据)

mysqldump -u username -p “password” -d dbname tablename > tablename.sql

5、备份数据库时使用参数(–ignore-table)排除某个表或多个表

mysqldump -uroot -p“password” –ignore-table=dbname.table1 –ignore-table=dbname.table2 dbname > /opt/backup.sql

6、备份所有数据库

mysqldump -u username -p “password” –all-databases > all.sql

sql文件还原方法

1、mysql -uroot -p”db_password” -f dbname < backup.sql (-f 参数表示在导出过程中忽略出现的SQL错误)

nohup mysql -uroot -p”db_password” -f dbname < backup.sql > /dev/null 2>&1 & (在导入较大的sql文件时可以放到后台执行)

2、mysql -uroot -p 先登录到数据库,use dbname; 切换到需要导入的库中,然后执行 source /opt/backup.sql; 这样就可以导入了

mysqldump 参数详解

–host 指定要备份数据库的服务器

–port MySQL服务器的端口号

–user 连接MySQL服务器的用户名

–password 连接MySQL服务器的密码

–add-locks 备份数据库表时锁定数据库表

–databases, -B 导出多少数据库,参数后面所有参量都被看作数据库名

–all-databases 备份MySQL服务器上的所有数据库

–all-tablespaces , -Y导出全部表空间 -y不导出任何表空间信息

–add-drop-table 在每个创建数据库表语句前添加删除数据库表的语句

–no-create-db 禁止生成创建数据库语句

–no-create-info 禁止生成创建数据库库表语句

–complete-insert, -c使用完整的insert语句(包含列名称),这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败

–no-data, -d 不导出任何数据,只导出数据库表结构

–no-create-info, -t 只导出数据,而不添加CREATE TABLE 语句

–no-create-db, -n 只导出数据,而不添加CREATE DATABASE 语句

–ignore-table 导出数据库时忽略某个表

–force,-f 在导出过程中忽略出现的SQL错误,当出现错误时仍然继续后面的操作

–add-drop-database 每个数据库创建之前添加drop数据库语句

–add-drop-table 每个数据表创建之前添加drop数据表语句,默认为打开状态,使用–skip-add-drop-table取消选项

–add-locks在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE,默认为打开状态,使用–skip-add-locks取消选项

–default-character-set 设置默认字符集,默认值为utf8

–comments 附加注释信息,默认为打开,可以–skip-comments取消

–compact导出更少的输出信息(用于调试),去掉注释和头尾等结构,(可以使用选项 –skip-add-drop-table –skip-add-locks –skip-comments –skip-disable-keys)

–events, -E 导出事件

–flush-privileges 在导出mysql数据库之后,发出一条FLUSH PRIVILEGES 语句

–flush-logs 开始导出之前刷新日志,请注意,假如一次导出多个数据库(使用选项–databases或者–all-databases),将会逐个数据库刷新日志

除使用–lock-all-tables或者–master-data外,在这种情况下,日志将会被刷新一次,相应的表同时被锁定,因此,如果打算同时导出和刷新日志应该使用–lock-all-tables 或者–master-data 和–flush-logs

–delayed-insert 采用延时插入方式(INSERT DELAYED)

–comments 添加注释信息

–compact 压缩模式,产生更少的输出

–complete-insert 输出完成的插入语句

–default-character-set 指定默认字符集

–lock-tables 备份前,锁定所有数据库表

–lock-all-tables, -x提交请求锁定所有数据库中的所有表,以保证数据的一致性,这是一个全局读锁,并且自动关闭–single-transaction 和–lock-tables 选项

–debug 输出debug信息,用于调试(默认值为d:t:o,/tmp/mysqldump.trace)例 mysqldump -uroot -p –all-databases –debug=” d:t:o,/tmp/debug.trace”

--------------------本文结束,感谢您的阅读--------------------

本文标题:mysqldump数据库备份还原

文章作者:弓昭

发布时间:2019年04月28日 - 23:03

最后更新:2020年04月08日 - 22:20

原始链接:https://gongzhao1.gitee.io/mysqldump数据库备份还原/

联系邮箱:gongzhao1@foxmail.com