読者です 読者をやめる 読者になる 読者になる

mac + mysql + Symfony2 + doctrineでエラー

mac + mysql + Symfony2でdoctrine関係のコマンドを実行すると、次のエラーが出ることがあります。

Could not create database for connection named `test_project`
SQLSTATE[HY000] [2002] No such file or directory

これは、mysql起動時のsocket情報を保存するファイルが通常とは違うところに出力されるのが原因です。解決するためには、app/config/config.ymlに"unix_socket"の設定を追加します。
 
doctrine:
  dbal:
       driver:   "%database_driver%"
        host:     "%database_host%"
        port:     "%database_port%"
        dbname:   "%database_name%"
        user:     "%database_user%"
        password: "%database_password%"
        charset:  UTF8
        unix_socket: /tmp/mysql.sock
 
unix_socketの値は、mysqlにログインして"status"コマンドで確認できます。
 
mysql> status
--------------
mysql  Ver 14.14 Distrib 5.5.27, for osx10.6 (i386) using readline 5.1
 
Connection id:6
Current database:
Current user:root@localhost
SSL:Not in use
Current pager:stdout
Using outfile:''
Using delimiter:;
Server version:5.5.27-log MySQL Community Server (GPL)
Protocol version:10
Connection:Localhost via UNIX socket
Server characterset:latin1
Db     characterset:latin1
Client characterset:utf8
Conn.  characterset:utf8
UNIX socket:/tmp/mysql.sock
Uptime:10 hours 57 min 18 sec
 
Threads: 1  Questions: 24  Slow queries: 0  Opens: 34  Flush tables: 1  Open tables: 27  Queries per second avg: 0.000
--------------