【mysql】mysql 导出全库表结构,并排除指定库

来源:互联网 发布:关于网络防诈骗的知识 编辑:程序博客网 时间:2024/06/06 04:49

作者:lianghc

mysql 导出一般使用mysqldump,这个工具很灵活,可以根据需要导出全库数据,指定库数据、表结构,指定表数据、表结构,等等。

导出全库表结构

mysqldump    -h  192.168.1.1 -P 3066 -uroot -proot -d -A --skip-lock-tables >ddl.sql;
-d 不导出数据

原文:-d, --no-data       No row information.

-A 表示选择所有的数据库,包括mysql的元数据库

原文:-A --all-databases Dump all the databases. This will be same as --databases  with all databases selected.


此时是全库表结构导出备份,一般的不需要备份Database|information_schema|mysql|test|performance_schema 这四个元数据库,而mysqldump 没有提供数据库级别的ignore语法,

如果库比较少,可以用--databases db1,db2 来指定,如果库比较多,就只能借助shell 脚本了,下面的脚本仅供参考:

mysql -h127.0.0.1 -P3306 -uroot -proot -e 'show databases;'|grep -E -v "Database|information_schema|mysql|test|performance_schema" |xargs mysqldump -h127.0.0.1 -P3306 -uroot -proot -d --skip-lock-tables --databases >ddl.sql

语句解释:

mysql  -h127.0.0.1 -P3306 -uroot -proot -e 'show databases;' # 查询所有的databases
grep -E -v "Database|information_schema|mysql|test|performance_schema"   # 将前面的结果排除掉指定的库
xargs mysqldump   -h127.0.0.1 -P3306 -uroot -proot -d --skip-lock-tables --databases >ddl.sql # 将排除后的数据库名作为参数传给mysqldump的--databases 参数


原创粉丝点击