Назад | Перейти на главную страницу

Как сбросить все базы данных с сервера MySql с помощью mysqldump без паролей

Можно ли сбросить все базы данных без указания имени пользователя и пароля для каждой базы данных? На сервере 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