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.

Другие вопросы по тегам