Mysql使用mysqldump进行数据备份
程序员文章站
2022-06-23 08:29:32
项目Value电脑$1600手机$12导管$1Column 1Column 2centered 文本居中right-aligned 文本居右...
文章参考:
https://www.cnblogs.com/markLogZhu/p/11398028.html
https://www.cnblogs.com/chenmh/p/5300370.html
一、命令说明
1.1常用命令格式
mysqldump -u -p --databases 数据库名 > 脚本名 #备份指定数据库
mysqldump -u -p --all-databases > 脚本名 #备份所有数据库
mysqldump -u -p --databases 数据库名 --tables 表名 > 脚本名 #备份指定表
1.2参数说明
参数名 | 缩写 | 含义 |
---|---|---|
–host | -h | 服务器IP地址 |
–port | -P | 服务器端口号 |
–user | -u | MySQL 用户名 |
–pasword | -p | MySQL 密码 |
–databases | 指定要备份的数据库 | |
–all-databases | 备份mysql服务器上的所有数据库 | |
–compact | -C | 压缩模式,产生更少的输出 |
–no-data | 不导出数据,只导出表结构 | |
–comments | 添加注释信息 | |
–complete-insert | 输出完成的插入语句 | |
–lock-tables | 备份前,锁定所有数据库表 | |
–no-create-db/–no-create-info | 禁止生成创建数据库语句 | |
–force | 当出现错误时仍然继续备份操作 | |
–default-character-set | 指定默认字符集 | |
–add-locks | 备份数据库表时锁定数据库表 |
二、导出实例
2.1导出所有数据库
该命令会导出包括系统数据库在内的所有数据库
mysqldump -uroot -proot --all-databases > backup/all.sql
2.2导出db1,db2这两个数据库的所有数据
使用空格隔开两个数据库即可
mysqldump -uroot -proot --databases db1 db2 > backup/two_db.sql
2.3导出db1中的tab1,tab2表
mysqldump -uroot -proot --databases db1 --tables tab1 tab2 > backup/two_tables.sql
注意:导出指定表只能针对一个数据库进行导出,且导出表的内容中和导出数据库不一样,导出指定表的导出文本中没有创建数据库的判断语句,只有删除表-创建表-导入数据;而导出表的拥有。见下图:
若你不想有创建数据库的语句,可以添加参数:–no-create-info
2.4导出db1中tab1表id=1的数据
整型字段:
mysqldump -uroot -proot --databases db1 --tables tab1 --where='id=1' > backup/tab1.sql
字符串字段:
mysqldump -uroot -proot --databases db1 --tables tab1 --where="name='a'" > backup/tab1.sql
2.5只导出表结构不导出数据
mysqldump -uroot -proot --no-data --databases db1 > backup/db1.sql
2.6跨服务器导出数据
mysqldump --host=192.168.43.1 -uroot -proot --databases db1 | mysql --host=192.168.43.2 -uroot -proot db2
将ip为192.168.43.1的服务器db1数据库的所有数据导入到ip为192.168.43.2的服务器db2数据库中,db2的数据库必须存在否则会报错
mysqldump --host=192.168.43.1 -uroot -proot -C --databases db1 | mysql --host=192.168.43.2 -uroot -proot db2
也可以加上参数-C来进行压缩传递,以加快传输
三、导入实例
3.1 系统命令行导入
mysqladmin -uroot -p create db1
mysql -uroot -p db1 < /backup/db1.sql
注意:在导入备份数据库前,db1如果没有,是需要创建的;而且与db1.sql文件中所写的数据库名是一样的才可以导入。
3.2 进入mysql中导入
mysql > use db1
mysql > source /backup/db1.sql
本文地址:https://blog.csdn.net/lendsomething/article/details/109000973