Почему я не могу подключиться к удаленной базе данных MySQL?

Возможный дубликат:
как понять не удается подключить сообщения об ошибках mysql?

Я пытался следовать практически каждому руководству, которое мог найти по этому вопросу, но безрезультатно. Я пытаюсь подключиться к удаленной базе данных MySQL через PHP, но похоже, что соединение прерывается или что-то в этом роде. Это мой PHP-код:

$link = mysql_connect('remote-server-ip:3306', $username, $password);
if($link){
    echo "Connected.";
}else{
    echo "Not connected: ".mysql_error();
}

Когда я перехожу на эту страницу, она загружается примерно 30 секунд, прежде чем отобразить следующее:

Warning: mysql_connect(): Can't connect to MySQL server on 'remote-server-ip' (4) in /var/www/vhosts/*****/httpdocs/*****/*****.php on line 6

Вот что я сделал на удаленном сервере, чтобы попытаться разрешить это соединение:

  • Добавлены правила IPtables для разрешения подключений с моего сервера.
  • Настройте my.cnf для прослушивания всех TCP-запросов
  • В мою базу данных добавлены пользователи, которые могут подключаться с IP моего сервера

По-прежнему ничего не работает. Мне действительно нужна помощь здесь.


person HellaMad    schedule 08.10.2012    source источник
comment
Вы не забыли сбросить привилегии? (Банально, но все же)   -  person Repox    schedule 09.10.2012
comment
@DC_: И придерживаться устаревших функций?   -  person Elias Van Ootegem    schedule 09.10.2012
comment
@EliasVanOotegem Это просто тестовый файл - я обычно использую PDO.   -  person HellaMad    schedule 09.10.2012
comment
Во-первых, установите default_socket_timeout на 6 секунд в локальном php.ini .. 30 секунд - это слишком долго, чтобы ждать. :)   -  person deizel    schedule 09.10.2012
comment
@DC_ В этом нет смысла. Почему бы не придерживаться того, что вы обычно используете, вместо тестирования с устаревшими функциями?   -  person Repox    schedule 09.10.2012
comment
Можно ли выполнить эхо-запрос «remote-server-ip» с машины, на которой вы запускаете PHP?   -  person ernie    schedule 09.10.2012
comment
попробуйте localhost вместо remote-server-ip: 3306   -  person david strachan    schedule 09.10.2012
comment
@davidstrachan Это сработало бы, если бы я пытался подключиться к моему локальному серверу MySQL, но это не так: p   -  person HellaMad    schedule 09.10.2012
comment
localhost - это хост обоих моих удаленных серверов. Попробуйте и посмотрите   -  person david strachan    schedule 09.10.2012
comment
Решено с помощью этого класса PHP. Это обходной путь, но он работает.   -  person HellaMad    schedule 09.10.2012
comment
Также я не согласен с закрытым голосованием. Это определенно не точный дубликат, и ответы на другой вопрос ничего не дают.   -  person HellaMad    schedule 09.10.2012


Ответы (1)


Если вы ждете некоторое время, скорее всего, IP-адрес недоступен. Попробуйте сначала проверить связь с сервером MySQL. Затем попробуйте подключиться к нему по telnet через порт 3306. Вы должны установить соединение. Затем посмотрите, можете ли вы подключиться к MySQL с самого SQL-сервера, то есть через локальное соединение. Сначала нужно сделать основы

person Stacky    schedule 08.10.2012