Howto: mysqldump cron на Godaddy
У меня есть база данных 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
3 ответа
Я считаю, что дело в том, как вы указываете пароль. Пытаться
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.