独角兽企业重金招聘Python工程师标准>>>
导出篇
(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/0828/db.sql
2>
mysql -u<username> -p<password> <dbname> < /beifen/0828/db.sql #库必须保留,空库也可
说明:指定dbname,相当于use <dbname>
>>mysql -uroot -proot testdb < /beifen/0828/db.sql