[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Почему-то не получается законнектиться к MySQL
rreimche
$mysqli = new mysqli($dbserver, $dbuser, $dbpassword, $dbdatabase);

if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}


Результат:

Connect failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)


$dbserver, $dbuser, $dbpassword, $dbdatabase -- берутся из конфигурационного файла другого скрипта, находящегося на том же сервере и использующего ту же самую базу данных (т.е. они здесь точно такие же, как в том конфигурационном файле). Он вполне рабоботает. А вот тут -- can't...
inpost
А у тебя версия: 5.2.9 and 5.3.0 ТОЧНО?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
rreimche
Цитата (inpost @ 26.10.2012 - 12:05)
А у тебя версия: 5.2.9 and 5.3.0 ТОЧНО?

MySQL или PHP?
rreimche
php 5.2.17
mysql 5.0.95
rreimche
это значит, что надо откатываться к... не знаю, как это называется, в общем, другой синтаксис MySQL?
Zzepish
Хех! У меня тоже такая шняга на серве была.
Я связался с поддержкой. Они мне сказали, что написать вместот localhost и все заработало)
rreimche
Цитата (Zzepish @ 26.10.2012 - 16:53)
Хех! У меня тоже такая шняга на серве была.
Я связался с поддержкой. Они мне сказали, что написать вместот localhost и все заработало)

у меня localhost нет, там адрес сервер, который дали вместе с другими ключами.
rreimche
сменил синтаксис на "старый", та же фигня:

mysql_connect($dbserver[1],$dbuser[1],$dbpassword[1]) or die(mysql_error());
mysql_select_db($dbname[1]);

$result = mysql_query($query);

$row = mysql_fetch_array( $result );


Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
inpost
rreimche
http://www.php.net/manual/ru/mysqli.construct.php вот как использовать верно. И там написано, что баг только в 5.2.9 и 5.3, где надо использовать твой способ получения ошибки, в противном случае иной.

А ты уверен, что верные переменные написал?
Выведи всё то, что подставляешь в mysql_connect. Если всё выводится, то долбай их дальше, видимо не включили удаленный доступ или что-то ещё. Достаточно показать им твою строчку mysql_connect и номер ошибки!

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
rreimche
Цитата (inpost @ 26.10.2012 - 17:23)
rreimche
http://www.php.net/manual/ru/mysqli.construct.php вот как использовать верно. И там написано, что баг только в 5.2.9 и 5.3, где надо использовать твой способ получения ошибки, в противном случае иной.

А ты уверен, что верные переменные написал?
Выведи всё то, что подставляешь в mysql_connect. Если всё выводится, то долбай их дальше, видимо не включили удаленный доступ или что-то ещё. Достаточно показать им твою строчку mysql_connect и номер ошибки!

Заменил способ получения ошибки на рекомендуемый и таки получил:

Connect Error (2002) Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)


В переменных я уверен -- я их получаю из другого файла, там они точные (тот скрипт, wordpress, с ними работает). Кроме того, я их только что сверил (то, что я ниже получаю после preg_match).

В mysqli ввожу вот это:

$wpconfig = dirname(dirname(dirname(dirname(__FILE__)))).'/wp-config.php';

$config = file_get_contents($wpconfig);

preg_match('#define\(\'DB_NAME\',\s\'(.*)\'#iu', $config, $dbname);
preg_match('#define\(\'DB_USER\',\s\'(.*)\'#iu', $config, $dbuser);
preg_match('#define\(\'DB_PASSWORD\',\s\'(.*)\'#iu', $config, $dbpassword);
preg_match('#define\(\'DB_HOST\',\s\'(.*)\'#iu', $config, $dbhost);
preg_match('#define\(\'DB_CHARSET\',\s\'(.*)\'#iu', $config, $dbcharset);
preg_match('#define\(\'DB_COLLATE\',\s\'(.*)\'#iu', $config, $dbcollate);
preg_match('#\$table\_prefix\s+\=\s+\'(.*)\'#iu',$config,$dbprefix);

$mysqli = new mysqli($dbserver[1], $dbuser[1], $dbpassword[1], $dbdatabase[1]);



Буду писать в саппорт.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.