Привет, у меня 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
Вы указали папки для хранения дампов, но не создавайте их в скрипте, поэтому добавьте mkdir до команды mysqldump:
do
echo "Dumping $dbname"
mkdir -p /var/lib/mysql-files/${dbname}
mysqldump ... > /var/lib/mysql-files/${dbname}/${dbname}.sql
done