|
Добрый день, помогите разобраться.
Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in ...
Гуглил ошибку, пишут про то, что не верно указан хост при подключении, у меня верно, указываю хост из панели. (ЮЗЕР.mysql.ukraine.com.ua)
Запускаю скрипт отдельно, рядом лежит движок, опенкарт - работает норм.
Вот кусок кода pics.inweb.ua/tutb_ko/17HO0JQ.png
|
|
По всей видимости, попытка подключения все-таки идет на localhost, а не на ЮЗЕР.mysql.ukraine.com.ua. Возможно, в каком-то другом конфиге нужно прописывать параметры подключения?
Попробуйте добавить в скрипт перед mysql_connect() в 29 строке дамп хоста, к которому Вы подключаетесь:
var_dump($db_host);
|
|
Да, вы правы, переменная содержала пустую строку, поправил, спасибо.
Теперь хочу выполнить дамп через щелл, файл создается, но остается пустым.
pics.inweb.ua/tutb_ko/17I1YTW.png
$cmd_db = "mysqldump ".$db_name." --user=".$db_user." --password=".$db_pass." > ".$_SERVER['DOCUMENT_ROOT']."/dump.sql";
shell_exec($cmd_db);
Подскажите, где я ошибся?
|
|
На первый взгляд вижу одну ошибку - не указан хост для подключения. Замените "mysqldump " на "mysqldump -h $db_host "
|
|
Добавил, ситуация не изменилась, файл есть, но пустой. Дата создания меняется.
$cmd_db = 'mysqldump '.$db_name.' --host='.$db_host.' --user='.$db_user.' --password='.$db_pass.' > '.$_SERVER['DOCUMENT_ROOT'].'/dump.sql';
|
|
Добавьте в конец команды сохранение ошибки:
...'/dump.sql 2>&1';
В дамп будет записана ошибка, из-за которой не удалось сделать дамп.
|
|
Спасибо за совет.
Содержание файла:
sh: mysqldump: команда не найдена
Как быть? На всех хостинг-аккаунтах нет этой команды?
|
|
Она есть. Укажите полный путь: /usr/bin/mysqldump
|
|
В файле:
sh: /usr/bin/mysqldump: Нет такого файла или каталога
я пробовал это после "sh: mysqldump: команда не найдена"
|
|
|
|
Спасибо, все заработало.
Если кому понадобится:
$cmd_db = '/usr/local/mysql/bin/mysqldump '.$db_name.' --host='.$db_host.' --user='.$db_user.' --password='.$db_pass.' > '.$_SERVER['DOCUMENT_ROOT'].'/dump.sql';
shell_exec($cmd_db);
|