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

dano
9 лет
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
9 лет
0

По всей видимости, попытка подключения все-таки идет на localhost, а не на ЮЗЕР.mysql.ukraine.com.ua. Возможно, в каком-то другом конфиге нужно прописывать параметры подключения?
Попробуйте добавить в скрипт перед mysql_connect() в 29 строке дамп хоста, к которому Вы подключаетесь:
var_dump($db_host);

dano
9 лет
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
9 лет
0

На первый взгляд вижу одну ошибку - не указан хост для подключения. Замените "mysqldump " на "mysqldump -h $db_host "

dano
9 лет
0

Добавил, ситуация не изменилась, файл есть, но пустой. Дата создания меняется.

$cmd_db = 'mysqldump '.$db_name.' --host='.$db_host.' --user='.$db_user.' --password='.$db_pass.' > '.$_SERVER['DOCUMENT_ROOT'].'/dump.sql';

eugen
9 лет
0

Добавьте в конец команды сохранение ошибки:
...'/dump.sql 2>&1';

В дамп будет записана ошибка, из-за которой не удалось сделать дамп.

dano
9 лет
0

Спасибо за совет.
Содержание файла:
sh: mysqldump: команда не найдена

Как быть? На всех хостинг-аккаунтах нет этой команды?

eugen
9 лет
0

Она есть. Укажите полный путь: /usr/bin/mysqldump

dano
9 лет
0

В файле:
sh: /usr/bin/mysqldump: Нет такого файла или каталога

я пробовал это после "sh: mysqldump: команда не найдена"

87toqwyegf
9 лет
0

путь к mysqldump - /usr/local/mysql/bin/mysqldump
Подробнее - https://www.ukraine.com.ua/faq/kak-s-...

dano
9 лет
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);

Тема закрыта.