将所有mysql数据库备份到单独文件夹的简单脚本
你好,我有10个数据库每个数据库有3个同名用户表 我正试图将每个数据库转储到一个单独的文件夹中,该文件夹的名称为database,其中包含我转储的所有表 所以我从这个示例代码开始将所有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
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
也许这有助于: