Ошибка подключения PDO при использовании symfony и MAMP


Получение ошибки PDO при попытке выполнить php symfony doctrine:insert-sql
Ошибка, которую я получаю:

Warning: PDO::__construct(): [2002] Connection refused (trying to connect via tcp://127.0.0.1:3306) in /Users/johannes/Programmering/PHP/htdocs/symfony/sfprojects/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php on line 470

Базы данных.yml

    all:
    doctrine:
    class: sfDoctrineDatabase
    param:
      dsn: mysql:host=127.0.0.1;dbname=jobeet;
      username: root
      password: root

Выполнение mysql -u root -p jobeet с "root" в качестве пароля дает мне доступ, так что никаких проблем нет. И да, mysql, который я запускаю, принадлежит MAMP.

Спасибо за любую помощь.

Author: Johannes, 2011-01-24

4 answers

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

Изменение вашего dsn, как предлагает @Tom, должно устранить ваши проблемы. Как ни странно, но с помощью localhost вместо 127.0.0.1 делает так, что mysql подключается через сокеты.

Http://dev.mysql.com/doc/refman/5.0/en/connecting.html :

В Unix программы MySQL обрабатывают имя хоста localhost особым образом, таким образом , который, вероятно, отличается от что вы ожидайте по сравнению с другими сетевыми программами. Для подключения к локальному хосту программы MySQL пытаются подключиться к локальному серверу с помощью Файл сокета Unix. Это происходит даже в том случае, если для указания номера порта используется опция --port или -P. Чтобы убедиться, что клиент устанавливает соединение TCP/IP с локальным сервером, используйте --host или -h , чтобы указать значение имени хоста 127.0.0.1 или IP-адрес или имя локального сервера. Вы также можете указать протокол подключения явно, даже для локального хоста, используя параметр --protocol=TCP.

 7
Author: Jakub Zalas, 2011-01-25 09:29:24

MAMP PRO 2.х
Я смог решить эту и многие подобные проблемы, просто сняв флажок "Разрешить только локальный доступ" в префиксах MySQL на панели управления MAMP.

enter image description here

MAMP PRO 3.х
Как заявил Кендрик: enter image description here

 13
Author: James O, 2017-05-23 12:06:58

У меня была та же ошибка при попытке построить свои таблицы в Symfony и с использованием MAMP. Я исправил проблему, изменив свою строку dsn в базах данных.файл yml, следующий:

dsn: 'mysql:host=localhost;dbname=jobeet;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock'
 3
Author: Ryan Tinker, 2011-05-17 20:56:14

Выглядит правильно. Здесь был бы точный эквивалент из рабочей базы данных.я использую yml, на случай, если он будет полезен:

dsn: 'mysql:host=localhost;dbname=jobeet'
 1
Author: Tom, 2011-01-24 23:52:13