У меня есть база данных MySql, которую я хочу ежедневно выполнять резервное копирование в файл. (Который я позже скачаю для резервного копирования вне сервера).
Я установил следующую команду в своем crontab (запускается ежедневно):
mysqldump -–opt -Q -h [myhost] -u myusername -–password=***** ebooklibrary > /fullpath.../_db_backups/openelibrary.sql
Имя базы данных электронная библиотека.
Я постоянно получаю эту ошибку:
mysqldump: Got error: 1045: Access denied for user 'myusername'@'97.74.144.139' (using password: NO) when trying to connect
Как я могу это исправить или сделать правильно, чтобы mysqldump будет работать ежедневно?
Спасибо.
Используя оболочку, работала следующая команда:
mysql -h myhost -u myusername -p"*****" ebooklibrary
Полагаю, дело в том, как вы указываете пароль. Пытаться
mysqldump –opt -Q -h [myhost] -u myusername –p"*****" ebooklibrary > /fullpath.../_db_backups/openelibrary.sql
При указании пароля в командной строке необходимо использовать
--password="xxx"
скорее, чем
-password="xxx"
Обратите внимание на двойное тире в первой команде.
РЕДАКТИРОВАТЬ: Вы знаете, является ли сервер БД тем же сервером, что и веб-сервер? Если да, то пробовали ли вы пропустить хост? С этой мыслью, пробовали ли вы также --host = 127.0.0.1 (только что попробовал это на моей машине - это кажется очень анальным относительно правильного имени хоста)
У этой ошибки есть 2 вероятные причины.
1) В вашем пароле есть специальные символы, например !%#
и т.д., если это так, вы можете избежать символа, поставив перед ним обратную косую черту '\'.
2) Этот пользователь действительно не имеет разрешения на доступ с IP-адреса, указанного в ошибке. Решение состоит в том, чтобы либо предоставить этому пользователю права с указанного IP-адреса, либо не пытаться использовать этот хост для доступа к mysql.
Вы также можете использовать следующую команду, если у вас есть доступ к CLI сервера (если вы не укажете хост, mysql попытается подключиться к localhost):
mysqldump -uUSER -pPASS ebooklibrary > /fullpath.../_db_backups/openelibrary.sql
или вы можете использовать следующий синтаксис, если выполняете команду удаленно.
mysqldump -h IP -uUSER -pPASS ebooklibrary > /fullpath.../_db_backups/openelibrary.sql
Вы должны убедиться, что у вас есть необходимые права для выполнения дампа, как указано в mysqldump страница.