将所有mysql数据库备份到单独文件夹的简单脚本

将所有mysql数据库备份到单独文件夹的简单脚本,mysql,bash,Mysql,Bash,你好,我有10个数据库每个数据库有3个同名用户表 我正试图将每个数据库转储到一个单独的文件夹中,该文件夹的名称为database,其中包含我转储的所有表 所以我从这个示例代码开始 mysql -uroot -p -e 'show databases' | while read dbname; do mysqldump -uroot -p -T/backup/$dbname/ --fields-terminated-by="|" "$dbname" > "$dbname".txt; done

你好,我有10个数据库每个数据库有3个同名用户表

我正试图将每个数据库转储到一个单独的文件夹中,该文件夹的名称为database,其中包含我转储的所有表

所以我从这个示例代码开始

mysql -uroot -p -e 'show databases' | while read dbname; do mysqldump -uroot -p -T/backup/$dbname/ --fields-terminated-by="|" "$dbname" > "$dbname".txt; done
然后我得到了这个错误

mysqldump: Can't create/write to file '/home/database/users.sql' (Errcode: 2 - No such file or directory)
我没有太多的bash脚本技巧 请帮帮我

我的第二个剧本

#!/bin/bash

echo "MySQL backup"
mysql -u root -pPwd -e "show databases" \
    | grep -Ev 'Database|information_schema' \
    | while read dbname;
do
  echo "Dumping $dbname"
  mysqldump -u root -pPwd --fields-terminated-by="|" $dbname > /var/lib/mysql-files/$dbname/ > "$dbname".txt; done
done

您指定了用于存储转储的文件夹,但未在脚本中创建它们,因此,请在mysqldump命令之前添加mkdir:

do
  echo "Dumping $dbname"
  mkdir -p /var/lib/mysql-files/${dbname} 
  mysqldump ... > /var/lib/mysql-files/${dbname}/${dbname}.sql
done
也许这有助于: