Rails: Verbindung zum lokalen MySQL-Server kann nicht über Socket "/var/run/mysqld/mysqld.sock" hergestellt werden

6316
Andrew

Ich habe also eine Ruby on Rails-Anwendung, die ich auf Snow Leopard ausführen möchte. Ich habe es auf meinem Ubuntu-Computer installiert, aber jetzt muss ich meine Snow Leopard-Umgebung einrichten.

Ursprünglich habe ich den MySQL 2.8.1 Ruby Gem installiert und stieß auf dieses Problem:

uninitialized constant MysqlCompat::MysqlRes 

Dank dieses Tutorials konnte ich es jedoch beheben, indem Sie diesen Befehl ausführen und eine frühere Version des Gem installieren:

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 

Nun, da ich dieses Problem gelöst habe, stoße ich auf einen anderen Fehler:

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

Dies passiert, wenn ich versuche zu laufen rake db:migrate, sowie wenn der Server läuft. Wie kann ich dieses Problem lösen?

4

2 Antworten auf die Frage

5
Andrew

Der Grund für diesen Fehler liegt darin, dass die database.ymlKonfigurationsdatei Ihrer Schienenanwendung den Speicherort des Sockets angibt.

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

Da sich Ihr Ubuntu MySQL Socket an einem anderen Ort als Ihr Snow Leopard MySQL Socket befindet, müssen Sie einen Symlink erstellen, wenn Sie dieselbe Konfigurationsdatei für verschiedene Computer freigeben möchten.

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

Hinweis: Ich musste das mysqldVerzeichnis erstellen, bevor ich einen symbolischen Link einfügen konnte.

Vielen Dank für Ihre Lösung. Beachten Sie, dass Sie tatsächlich Ihre eigene Antwort akzeptieren können. Arjan vor 14 Jahren 1
0
phoebus

Überprüfen Sie /tmp/mysql.sock.

Und wie entscheidet man, was damit zu tun ist? Tom Wijsman vor 11 Jahren 0