mysqldump基本使用

mysqldumpMySQL 自带的逻辑备份工具

它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原

语法:

Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]

参数说明:

  • --port(-P):服务器端口号
  • --tables:指定要备份的表
  • --databases:指定要备份的数据库
  • --no-create-db/--no-create-info(-t):不写入表创建信息(CREATE TABLE语句)
  • --complete-insert(-c):使用完整的insert语句(用列名字)
  • --no-data(-d):不写入表的数据,如果你只想得到一个表结构的导出,这是很有用的!
  • --where="condition"(-w):只导出符合条件的记录,注意引号是强制的!
  • --all-databases:备份mysql服务器上的所有数据库
  • --compact:压缩模式,产生更少的输出
  • --lock-tables:备份前,锁定所有数据库表
  • --force(-f):当出现错误时仍然继续备份操作
  • --default-character-set:指定默认字符集
  • --add-locks:备份数据库表时锁定数据库表
  • --extended-insert(-e):使用全新多行INSERT语法,默认开启(给出更紧缩并且更快的插入语句)
  • --skip-extended-insert:多行insert
  • --skip-lock-tables:跳过锁表操作

导出指定数据库指定表结构和数据

mysqldump -h ip database -uusername -ppassword --tables table_name1 table_name2 table_name3 >D:\db_script.sql

导出指定数据库指定表数据

mysqldump -h ip database -uusername -ppassword -t -c table_name1 table_name2 table_name3 >D:\db_script.sql

导出指定数据库指定表指定数据

mysqldump -h ip database -uusername -ppassword -t -c table_name --where="brand_id=7" >D:\db_script.sql

导出指定数据库指定表结构

mysqldump -h ip database -uusername -ppassword -d table_name1 table_name2 table_name3 >D:\db_script.sql

导出整个库数据

mysqldump -h ip database -uusername -ppassword -c --skip-lock-tables >D:\11032709\Desktop\data_18.sql

导出全库数据

mysqldump -h ip -uusername -ppassword --all-databases --skip-lock-tables --skip-triggers > D:\db_script.sql

导出指定数据库指定前缀的表数据或结构

由于mysqldump目前不支持这种操作,所以无法通过一条命令解决

但是有另外一种办法可以快速实现该功能:

1、从数据库查出符合条件的表名

select table_name from information_schema.tables  WHERE table_schema="diyhome_dev" and table_name like "%wizard%"
-- information_schema.tables是固定值,table_schema指定要查找的数据库,table_name指定表名条件

2、将查询结果即符合条件的表名复制到文本编辑器,此时一个表名占一行

3、选中文本编辑器所有表名,合并行,使所有表名都在同一行(笔者使用的是sublime,点击编辑->行->合并行即可)

4、接下来便可以编辑使用上面的命令快速导出指定数据库指定前缀的表数据或结构了

扩展

导入sql文件

mysql -h ip -Pport -uusername -ppassword database < D:\11032709\Desktop\data_18.sql

记得快乐