如何使用一个命令导出一定数量的 MySql 数据库

如何使用一个命令导出一定数量的 MySql 数据库

我需要导出 MySql 服务器中的大约 20 个数据库,其中包含大约 100 个不同的数据库,是否可以使用控制台命令将数据库名称列表导出到单独的文件中?(当然是在 Linux 下)。

答案1

echo "show databases" | mysql -N | while read db
do
  mysqldump ${db} > ${db}.sql
done

您可以使用grep删除不需要的数据库,mysql例如information_schema

答案2

创建一个文本文件,将要备份的每个数据库的名称放在一行中

例如

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

答案3

最简单的解决方案是在命令行上使用简单的 for 循环。在我的示例中,我想导出数据库carsanimalscomputers

for db in cars animals computers ; do mysqldump -uuser -ppassword "$db" > "$db.sql" ; done

相关内容