Можно ли сбросить все базы данных без указания имени пользователя и пароля для каждой базы данных? На сервере 10 баз данных с разными логинами и паролями.
Я буду авторизован как root (CentOS)
Я использовал следующее, но получаю ошибки доступа
mysqldump --all-databases > gzip > bak-sql.zip
[фиксированный]
mysqldump -u admin --password='password' --all-databases | gzip -7 > bak-sql.zip
[Связанная тема]
https://stackoverflow.com/questions/8444108/how-to-use-mysql-dump
Попробуйте это (из документации mysql):
сначала создайте файл конфигурации для mysql и убедитесь, что только ваша учетная запись имеет к нему доступ:
touch ~/.my.cnf
chmod 600 ~/.my.cnf
добавьте комбинации имени пользователя и пароля в файл конфигурации:
[mysqldump]
user=databseuser12
password=otFRD?17*<8X0G
Затем вы можете запустить команду mysqldump без пароля:
mysqldump --user=databseuser12 --host=mysql.example.com forumsalpha | gzip -9 > /home/myuser/backups/dbs/mysql-forumsalpha.sql.gz
[редактировать]
хорошо, я использовал:
mysqldump -u admin --password='password' database-name | gzip -7 > bak-sql.zip
Мое предположение верно, как указано @wurtel (linux связывает пользователя linux с пользователем MySQL).
Я вошел в MySql с помощью phpMyAdmin и админ пользователь имеет все привилегии, но не связан ни с одной базой данных! (панель plesk), поэтому мне нужно использовать admin1 username1 databae1
формат для каждой базы данных и выполнить задачу для каждой базы данных. Лучшим подходом будет написать сценарий с циклом for для записи каждой базы данных в отдельный файл.
Также | gzip -7 > file
правильно вместо > gzip > file
что неправильно.
Поскольку в моем пароле были специальные символы, у меня возникли ошибки доступа, поэтому мне пришлось использовать флаг
--password='password'
вместо того -ppassword