通配符备份MySQL数据库

Interweb上关于如何基于通配符table name进行备份的问题有很多讨论,但通配符database name又如何呢?

例如

如果我有数据库命名

 foo1 foo2 foo3 . . fooN bar1 

我想只备份前缀为foo数据库,这可能吗?

您可以从information_schema数据库的表中select数据库名称。 你可以使用filter来过滤你的前缀。 使用输出的数据库名称使用mysqldump导出。 一个实际的例子如下:

 mysqldump -u root -pPASSWORD --databases $( mysql -uroot -p -N information_schema \ -e "SELECT DISTINCT(TABLE_SCHEMA) FROM tables WHERE TABLE_SCHEMA LIKE 'prefix%'" ) > /tmp/backup.sql