PDO не может подключиться к MySQL, но CLI может

Сделал тестовый скрипт:

<p> Я получаю следующую ошибку:</p> <pre class="prettyprint linenums">PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2005] Unknown MySQL server host 'mydbhost:3306' (107)' in /users/pvarney/test_pdo.php:3 Stack trace: #0 /users/pvarney/test_pdo.php(3): PDO->__construct('mysql:dbname=my...', 'myusername', 'mypassword') #1 {main} thrown in /users/pvarney/test_pdo.php on line 3 </pre> <p> Затем через CLI:</p> <pre class="prettyprint linenums">[pvarney@ci-server ~]$ mysql mydbname -h mydbhost -u myusername -p --port=3306 Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 828511 ... snip mysql welcome text ... mysql> </pre> <p> Я изменил строку подключения для маскировки информации о подключении, но я скопировал ее в CLI, чтобы убедиться, что у меня нет опечаток.</p>
5 ответов

изменение

new PDO('mysql:dbname=mydbname;host=mydbhost:3306', 'myusername', 'mypassword');

в

new PDO('mysql:dbname=mydbname; host=mydbhost; port=3306;', 'myusername', 'mypassword');


Проверьте документы PHP для PDO_MYSQL_DSN. Порт должен быть передан как отдельный параметр:

mysql:dbname=mydbname;host=mydbhost;port=3306


$a = new PDO('mysql:dbname=mydbname;host=mydbhost;port=3306', 'myusername', 'mypassword'); /*note ^^*/


Взгляните на этот пост: Не удается подключиться к серверу MySQL с помощью PDO

Попробуйте изменить настройку порта


Это сработало для меня:

  1. Откройте файл что-то вроде /etc/php5/cli/php.ini
  2. Найти запись pdo_mysql.default_socket =/opt/lampp/var/mysql/mysql.sock
  3. Измените это на то, что вы хотите. Все это.

licensed under cc by-sa 3.0 with attribution.