sábado, 27 de março de 2010

PDO Connection Error com symfony no Mac OS X

Estava tentando rodar o comando ./symfony doctrine:insert-sql quando surge o seguinte erro:
PDO Connection Error: SQLSTATE[HY000] [2002] No such file or directory 
Eu já tinha visto esse erro quando estava desenvolvendo no Ubuntu (agora desenvolvo num Mac OS X) e lembrei vagamente do que fiz para resolver. Procurei na internet, mas as sugestões de solução envolviam alterar meu php.ini, coisa que eu não queria fazer.
Assim fui buscar no germe de backup que tenho e achei o método que tinha adotado para resolver isso. Não lembro a fonte desta solução - provavelmente algum dos fóruns sobre symfony - mas ela consiste basicamente em adicionar a configuração da localização do mysql.sock usado. No caso, meu arquivo database.yml ficou assim:

all:
  doctrine:
    class: sfDoctrineDatabase
    param:
      dsn: 'mysql:host=localhost;dbname=jobeet;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock'
      username: jobeet
      password: jobeet

No caso para o Ubuntu, eu estava usando o Lampp com ORM Propel.  O arquivo consistia em:

dev:
  propel:
    param:
      classname: DebugPDO

test:
  propel:
    class: sfPropelDatabase
    param:
      classname: DebugPDO
      dsn: 'mysql:host=localhost;dbname=jobeet_test;unix_socket=/opt/lampp/var/mysql/mysql.sock'
      username: jobeet
      password: 'jobeet'

all:
  propel:
    class: sfPropelDatabase
    param:
      classname: PropelPDO
      dsn: 'mysql:host=localhost;dbname=jobeet;unix_socket=/opt/lampp/var/mysql/mysql.sock'
      username: jobeet
      password: 'jobeet'
      encoding: utf8
      persistent: true
      pooling: true

É só.

Nenhum comentário:

Postar um comentário