您好我有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
答案 0 :(得分:0)
您指定了存储转储的文件夹,但是不要在脚本中创建它们,因此,在mysqldump命令之前添加mkdir:
do
echo "Dumping $dbname"
mkdir -p /var/lib/mysql-files/${dbname}
mysqldump ... > /var/lib/mysql-files/${dbname}/${dbname}.sql
done