Ошибка при создании соединения с PDO в PHP

Сегодня я удалил и переустановил последнюю версию фонаря, чтобы перейти на php 5.30, и вдруг очень простое приложение не может подключиться к базе данных mysql. Я использую PDO для подключения и получаю следующую ошибку:

Warning: PDO::__construct() [pdo.--construct]: [2002] Invalid argument (trying to connect via unix://) in /home/raistlin/www/todoapp/home.php on line 9 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Invalid argument' in /home/raistlin/www/todoapp/home.php:9 Stack trace: #0 /home/raistlin/www/todoapp/home.php(9): PDO->__construct('mysql:host=loca...', 'USER', 'PASSWORD') #1 {main} thrown in /home/raistlin/www/todoapp/home.php on line 9 

Я не поймаю ошибку на данный момент, ради ее отладки.

Для копирования этой проблемы в моей системе достаточно следующего кода:

 <?php $DBACCESS = array( "connstring"=>"mysql:host=localhost;dbname=todoapp", "host"=>"localhost", "user"=>"user", "password"=>"password", "todoapp"=>"todoapp" ); echo implode('<br \>',$DBACCESS); $dbh = new PDO($DBACCESS['connstring'],$DBACCESS['user'],$DBACCESS['password']); $dbh = null; ?> 

Глядя в онлайн, я нашел одного или двух других людей с той же проблемой, но ни один из них не получил ответа, а тем более рабочего. Кто-нибудь знает, что происходит? Есть что-то, что я пропустил в конфигурации? Что мне нужно сделать, чтобы исправить это?

    Обычно это означает, что вам нужно указать TCP / IP (1) или сообщить MySQL, где ваш сокет Unix (2):

    1. "mysql: host = 127.0.0.1" или "mysql: host = localhost; port = 3306"
    2. "MySQL: UNIX_SOCKET = / вар / запустить / туздЫ / mysqld.sock"

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

    Возможно, вы захотите изменить php.ini, чтобы PDO мог найти mysql.sock, указав pdo_mysql.default_socket = /opt/lampp/var/mysql/mysql.sock (в случае xampp). Не забудьте перезапустить Apache после изменения php.ini.

    (Извините, это похоже на повторное решение).

    Я использую MAMP 2.0.1 и Symfony 1.4 с Doctrine для этого проекта.

    Третий вариант работал для меня с небольшой модификацией: в /config/databases.yml

     dsn: 'mysql:unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock;dbname=MY_DB_NAME;' 

    Наиболее распространенной причиной такой ошибки может быть то, что MySQL не работает.