【mysql】mysql 导出全库表结构,并排除指定库
·
作者: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;' # 查询所有的databasesgrep -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 参数更多推荐
所有评论(0)