[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подключение через к удалёнке через PDO
sendxt
Всем привет, в чём могут быть причины того что я не могу подключить к удалёному серваку точней бд mysql.

делаю это так :


$db = new PDO('mysql:host=81.7.64.138;port=8081;dbname=xxx;charset=UTF-8', "xxx", "xxx");

'SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'reading initial communication packet', system error: 0' // ошибка



пробовал разные порты в том числе 3306 , через url всё ок подключяется , с консоли тоже. ( у меня убунту для справки ) . PDO драйвер включен.
sendxt
также пробовал указывать порт через двоеточие, без порта...

Хотя обманул с консоли тоже не подключяется
JohnBraxton
На стороне сервера разрешены подключения из вне?
sendxt
JohnBraxton

Как проверить? Нужен доступ к самому серваку?
Ну покрайней мере через url соединяется или это ни о чем ещё не говорит?
JohnBraxton
Если есть доступ к phpmyadmin можно глянуть там.
sendxt
JohnBraxton
как именно?
    Server: localhost via TCP/IP
    Server type: MySQL
    Server version: 5.6.12-log - MySQL Community Server (GPL)
    Protocol version: 10
    User: root@localhost
    Server charset: UTF-8 Unicode (utf8)
    Apache/2.4.4 (Win32) PHP/5.4.16
    Database client version: libmysql - mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $
    PHP extension: mysqli Documentation
AllesKlar
sendxt
Цитата
$db = new PDO('mysql:host=81.7.64.138;port=8081;dbname=xxx;charset=UTF-8', "xxx", "xxx");

Ты уверен, что порт 8081? Вообще-то это порт для вебсервера. Не думаю, что админ повесил на него сервер базы.


_____________
[продано копирайтерам]
stump
не слышал чтобы MySQL был на 8081, обычно 3306, 3307, 3308 но это если много серверов бд на обычном компьютере. И как было замечено сервер должен разрешать удаленные подключения и фаервол сервера пускать через порт.

_____________
Трус не играет в хокей
sendxt
AllesKlar
чтобы порт узнать тут нужен админ полагаю, как узнать разрешены ли внешние подключения..
Пробовал 3306,3307,3308
JohnBraxton
sendxt
через URL строку вы подключались так как 8081 это http порт, который в свою очередь пробрасывает вас на 3306 (ну или любой другой порт MySQL). Собственно 81.7.64.138 может и не быть сервером MySQL.

У адреса 81.7.64.138 порт 3306 закрыт.
AllesKlar
sendxt
Цитата
чтобы порт узнать тут нужен админ полагаю, как узнать разрешены ли внешние подключения..

Это самое разумное решение.

_____________
[продано копирайтерам]
sendxt
Всё понял спасибо)
Быстрый ответ:

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