mysql - 一个简单的脚本,用于将所有 mysql 数据库备份到单独的文件夹中

标签 mysql bash

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

我正在尝试按数据库名称将每个数据库转储到一个单独的文件夹,包括在该目录中转储的所有表。

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

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

关于mysql - 一个简单的脚本,用于将所有 mysql 数据库备份到单独的文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49847742/

相关文章:

mysql - 连接到现有的 Rails 应用程序

python - 将时间戳+数据从mysql导入到python并绘制时间序列

php - 表 '/mysql-tmp/#sql_78b5_0.MYI' 的 key 文件不正确;或 "Got error x from storage engine"

linux - 通过脚本验证 sudoing 密码

macos - 在 mac osx 终端应用程序中扩展 ascii 字符和 ansi

python - 如何将字典存储到数据库中,例如键和值对在django中具有单独的字段

mysql - DB超时或执行时间较长

linux - bash命令的Tell方法

mysql - 创建 bash 脚本以自动创建数据库和用户

linux - 移动或删除文件时使 `tail -f` 退出的 bash 脚本