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

jjhzyzn0  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(373)

你好我有10个数据库每个数据库有3个同名用户表
我正在尝试将每个数据库转储到一个单独的文件夹中,文件夹名为database include in that directory all my tables dumped。
所以我从这个示例代码开始。

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
u7up0aaq

u7up0aaq1#

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

do
  echo "Dumping $dbname"
  mkdir -p /var/lib/mysql-files/${dbname} 
  mysqldump ... > /var/lib/mysql-files/${dbname}/${dbname}.sql
done

相关问题