Rails: Não é possível conectar-se ao servidor MySQL local através do soquete '/var/run/mysqld/mysqld.sock'

4

Portanto, tenho um aplicativo Ruby on Rails que estou tentando executar (em desenvolvimento) no Snow Leopard. Eu tenho que trabalhar no meu computador Ubuntu, mas agora preciso configurar meu ambiente do Snow Leopard.

Originalmente, eu instalei o MySQL Ruby Gem do MySQL 2.8.1 e corri para este problema:

uninitialized constant MysqlCompat::MysqlRes

Mas, graças a este tutorial , consegui resolvê-lo com executando este comando e instalando uma versão anterior da Gem:

export ARCHFLAGS="-arch i386 -arch x86_64" ;sudo gem install --no-rdoc --no-ri -v=2.7 mysql -- --with-mysql-dir=/usr/local/mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config

Agora que resolvi esse problema, estou com um erro diferente:

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

Isso acontece quando tento executar rake db:migrate , bem como quando o servidor está em execução. Como posso resolver este problema?

    
por Andrew 30.01.2010 / 19:41

2 respostas

5

O motivo pelo qual você está incorrendo nesse erro é porque o arquivo database.yml config do seu aplicativo rails está especificando a localização do soquete.

development:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: myapp_development
  pool: 5
  username: root
  password:
  socket: /var/run/mysqld/mysqld.sock

Como o seu MySQL Ubuntu Socket está em um local diferente do seu Snow Leopard MySQL Socket, você terá que criar um symlink se quiser poder compartilhar o mesmo arquivo de configuração entre diferentes computadores.

sudo ln -s /tmp/mysql.sock /var/run/mysqld/mysqld.sock

Observação: eu tive que criar o diretório mysqld antes que eu pudesse colocar um link simbólico nele.

    
por 30.01.2010 / 20:11
0

Verifique o /tmp/mysql.sock.

    
por 30.01.2010 / 19:59