我需要导出大约20数据库在一个MySql服务器,其中包含大约100个不同的数据库,有可能使用控制台命令导出数据库名称列表到单独的文件? (当然是在Linux下)。
echo "show databases" | mysql -N | while read db do mysqldump ${db} > ${db}.sql done
您可以使用grep来移除不需要的数据库,如mysql和information_schema
创build一个文本文件,其中包含要备份的每个数据库的名称
例如
db1 reports
然后使用这样的脚本
#!/bin/bash ERRORS=0 while read db do echo "Processing $db" mysqldump -u root -p365576dx "$db" >"$db".sql EXITSTATUS=$? if [ "$ERRORS" -eq "0" -a "$EXITSTATUS" -ne "0" ] then ERRORS="$EXITSTATUS" fi done<dbstodump if [ "$ERRORS" -ne "0" ] then echo "Errors occurred see above for details" exit 1 fi
最简单的解决scheme就是在命令行上简单的进行循环。 在我的例子中,我想导出数据库的cars , animals和computers 。
for db in cars animals computers ; do mysqldump -uuser -ppassword "$db" > "$db.sql" ; done