我现在是在定时任务里这样做的
#导出数据库,一个数据库一个压缩文件
for db in `/usr/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
    (/usr/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
done
由于我的系统安装的是da虚拟主机面板,没有mysql的root用户,只有da_admin用户,所以这条导出全部的mysql数据库备份的命令时,系统提示:
mysqldump: Got error: 1044: Access denied for user 'da_admin'@'localhost' to database 'information_schema' when using LOCK TABLES其实这个表'information_schema'我不需要导出的,所以可以把它忽略
但是我要导出其他的mysql数据库,请问有什么好的命令吗?

解决方案 »

  1.   

    SHOW DATABASES like '%dbname%'
      

  2.   

    把show databases换成select SCHEMA_NAME from information_schema.SCHEMATA where schema_name not like 'inform%';
      

  3.   


    谢谢先,这条命令感觉有点复杂其实我是想导出某个数据库名称前缀固定的比如我要导出abc_123或abc_234等数据库/usr/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS --databases abc_* > /home/xxx.sql使用通配符*号好像不管用