有没有办法dump除系统数据库以外的所有mysql数据库?
问题:有没有办法dump除系统数据库以外的所有mysql数据库? 我使用 mysqldump 自动将我所有的数据库转储到一个文本文件中,并将这个转储保存为备份。我使用 --all-databases 选项转储我的数据库,但它也转储我不需要的系统数据库(信息_schema、phpmyadmin 等)。 有没有办法用 mysqldump 转储我的所有数据库而不在命令行上显式命名它们(这样我每次创建新数
·
问题:有没有办法dump除系统数据库以外的所有mysql数据库?
我使用 mysqldump 自动将我所有的数据库转储到一个文本文件中,并将这个转储保存为备份。我使用 --all-databases 选项转储我的数据库,但它也转储我不需要的系统数据库(信息_schema、phpmyadmin 等)。
有没有办法用 mysqldump 转储我的所有数据库而不在命令行上显式命名它们(这样我每次创建新数据库时都不必修改备份脚本),但忽略所有系统数据库?
解答
你可以像这样写一个 bash 脚本。它在转储数据库之前检查数据库的名称。
#!/bin/sh
DATABASES="$(/lighttpd/local/bin/mysql --user=user --password=pass -Bse 'show databases')"
for db in ${DATABASES[@]}
do
if [ $db == "information_schema" ]
then
continue
fi
echo ${db}-$(date +%m-%d-%y).sql.bz2 is being saved in /backup/mysql
mysqldump --user=user --password=pass $db --single-transaction -R | bzip2 -c > ${db}-$(date +%m-%d-%y).sql.bz2
done
更多推荐
已为社区贡献23588条内容
所有评论(0)