PDO Host игнорируется - PullRequest
       2

PDO Host игнорируется

1 голос
/ 17 октября 2011

Я настраиваю Symfony2 и, как часть процесса, впервые использую расширение PDO. У меня все в порядке, но у меня проблема с указанием имени хоста в DSN. Хост MySQL находится на другом сервере, и я включил его в DSN (скажем, «beta.example.com»). Однако возвращаемое сообщение об ошибке всегда говорит о том, что на локальном сервере был получен ответ об отказе в доступе (например, «alpha.example.com»).

Просто обратите внимание: сервер MySQL работает локально (на «alpha.example.com»), следовательно, сообщение об отказе в доступе, но то, что мне нужно использовать, работает на beta.example.com.

Мой DSN:

mysql:host=beta.example.com;port=3306;dbname=testdb;charset=UTF8

Вот снимок экрана с приложенной точной ошибкой (с именами хостов, измененными в соответствии с моими примерами выше):

https://skitch.com/nathanntg/gbrhx/pdo-exception

И это не связано с Symfony, это происходит, если я напрямую вызываю создание PDO из пустого файла PHP:

<?
$a = new PDO('mysql:host=beta.example.com;port=3306;dbname=testdb;charset=UTF8', 'testuser', 'password');
?>

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045]      Access denied for user 'testuser'@'alpha.example.com' (using password: YES)' in -:2
Stack trace:
#0 -(2): PDO->__construct('mysql:host=beta…', 'testuser', 'password')
#1 {main}
thrown in - on line 2

Любая помощь очень ценится!

1 Ответ

2 голосов
/ 17 октября 2011

Сообщение «Отказано в доступе» генерируется сервером MySQL, с которым вы связались, и не (обязательно) отражает используемое вами DNS-имя.

Убедитесь, что beta.example.com разрешает хост, на котором вы находитесьиспользуя (с host beta.example.com).Кроме того, конфигурация на этом сервере MySQL может быть как-то испорчена.Если вы заходите на beta.example.com с beta.example.com , появляется ли такое же сообщение об ошибке?

Вы можете узнать, с каким хостом связались, создав трассировку пакета(например, с wireshark ).Простой альтернативой является временная остановка (или брандмауэр) сервера MySQL на beta.example.com и проверка изменения сообщения об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...