Хостинг. mysql_connect, php, ошибки

dano
11 років
0
Добрый день, помогите разобраться.

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
eugen
11 років
0
По всей видимости, попытка подключения все-таки идет на localhost, а не на ЮЗЕР.mysql.ukraine.com.ua. Возможно, в каком-то другом конфиге нужно прописывать параметры подключения?
Попробуйте добавить в скрипт перед mysql_connect() в 29 строке дамп хоста, к которому Вы подключаетесь:
var_dump($db_host);
dano
11 років
0
Да, вы правы, переменная содержала пустую строку, поправил, спасибо.
Теперь хочу выполнить дамп через щелл, файл создается, но остается пустым.
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);

Подскажите, где я ошибся?
eugen
11 років
0
На первый взгляд вижу одну ошибку - не указан хост для подключения. Замените "mysqldump " на "mysqldump -h $db_host "
dano
11 років
0
Добавил, ситуация не изменилась, файл есть, но пустой. Дата создания меняется.

$cmd_db = 'mysqldump '.$db_name.' --host='.$db_host.' --user='.$db_user.' --password='.$db_pass.' > '.$_SERVER['DOCUMENT_ROOT'].'/dump.sql';
eugen
11 років
0
Добавьте в конец команды сохранение ошибки:
...'/dump.sql 2>&1';

В дамп будет записана ошибка, из-за которой не удалось сделать дамп.
dano
11 років
0
Спасибо за совет.
Содержание файла:
sh: mysqldump: команда не найдена

Как быть? На всех хостинг-аккаунтах нет этой команды?
eugen
11 років
0
Она есть. Укажите полный путь: /usr/bin/mysqldump
dano
11 років
0
В файле:
sh: /usr/bin/mysqldump: Нет такого файла или каталога

я пробовал это после "sh: mysqldump: команда не найдена"
87toqwyegf
11 років
0
путь к mysqldump - /usr/local/mysql/bin/mysqldump
Подробнее - https://www.ukraine.com.ua/faq/kak-s-...
dano
11 років
0
Спасибо, все заработало.
Если кому понадобится:
$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);
Тема закрита.