PDO не работает с портом

Я пытаюсь подключиться к внешней базе данных с помощью PDO.

$dbh = new PDO('mysql:host=hotsname;port=3309;dbname=dbname', 'root', 'root'); 

Однако это не работает на одном конкретном сервере, который у меня есть.

Я подумал, что возможно только определенный хост был разрешен, но я проверил правила mysql, а также пробовал этот код на сервере, который у меня есть лично, и соединение работает.

Поэтому я знаю, что код работает и что их нет на моей стороне и что брандмауэр принимает запросы на порт 3309 и передает его на правильный сервер на порт 3306.

Таким образом, проблема заключается исключительно на одном сервере. В качестве теста я решил открыть порт 3306 для проверки кода без указания порта.

 $dbh = new PDO('mysql:host=hotsname;dbname=dbname', 'root', 'root'); 

Это сработало сразу.

Поэтому мой вопрос: почему при добавлении порта это не позволяет подключиться к базе данных. Эта проблема имеет только этот конкретный сервер.

Большое спасибо за ваше время.

Обновить

Указанная ошибка просто «Не удается подключиться к серверу mysql на xxx.xxx.xxx.xxx».

Я получил немного дальше. Код теперь работает, и у меня есть правило брандмауэра, позволяющее принимать на 3306 серверу с использованием 3306. Таким образом, хотя я указал порт, он, кажется, игнорирует это и заставляет его выйти из 3306.

Related of "PDO не работает с портом"

Вероятно, вы используете localhost как имя хоста. Вместо этого переключение на 127.0.0.1 должно решить проблему незнания порта.

Проблема закончилась в связи с хостом. Весь трафик был вытеснен на 3306 независимо от порта, указанного в коде.