mysql逻辑备份之mysqldump

Python下MySQL数据库导出与导入方法
本文介绍了Python环境下MySQL数据库的导出和导入方法。导出包括导出所有数据库、指定数据库和表、条件导出、只导出表结构等多种情况,还涉及生成新binlog文件和跨服务器导出导入。导入则介绍了使用source命令和直接执行SQL文件两种方式。

导出篇

(1)导出所有数据库
>>mysqldump -uroot -proot --all-databases >/tmp/all.sql

(2)导出db1、db2两个数据库的所有数据
>>mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql

(3)导出db1中的a1、a2表
注意导出指定表只能针对一个数据库进行导出,且导出的内容中和导出数据库也不一样,导出指定表的导出文本中没有创建数据库的判断语句,只有删除表-创建表-导入数据
>>mysqldump -uroot -proot --databases db1 --tables a1 a2 >/tmp/db1.sql

(4)条件导出,导出db1表a1中id=1的数据
如果多个表的条件相同可以一次性导出多个表,

字段是整形
>>mysqldump -uroot -proot --databases db1 --tables a1 --where='id=1' >/tmp/a1.sql
字段是字符串,并且导出的sql中不包含drop table,create table
>>mysqldump -uroot -proot --no-create-info --databases db1 --tables a1 --where="id='a'" >/tmp/a1.sql

(5)只导出表结构不导出数据,-no-data
>>mysqldump -uroot -proot --no-data --databases db1 >/tmp/db1.sql

(6)生成新的binlog文件,-F
有时候会希望导出数据之后生成一个新的binlog文件,只需要加上-F参数即可
>>mysqldump -uroot -proot --databases db1 -F >/tmp/db1.sql

(7)跨服务器导出导入数据
>>mysqldump --host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot db2
将h1服务器中的db1数据库的所有数据导入到h2中的db2数据库中,db2的数据库必须存在否则会报错
>>mysqldump --host=192.168.80.137 -uroot -proot -C --databases test |mysql --host=192.168.80.133 -uroot -proot test
加上-C参数可以启用压缩传递。

 导入篇:

1>使用source 命令恢复数据库
使用source 命令,需要先登录数据库,在数据库操作界面调用该指令进行还原,语法如下
mysql>source /beifen/20180828/db.sql
2>
mysql -u<username> -p<password> <dbname> < /beifen/20180828/db.sql   #库必须保留,空库也可
说明:指定dbname,相当于use <dbname>

>>mysql -uroot -proot testdb < /beifen/20180828/db.sql

转载于:https://my.oschina.net/u/3420885/blog/1935417

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值