Rails: невозможно подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock'

Итак, у меня есть приложение Ruby on Rails, которое я пытаюсь запустить (в разработке) на Snow Leopard. У меня это работает на моем компьютере Ubuntu, но теперь мне нужно настроить среду Snow Leopard.

Первоначально я установил MySQL 2.8.1 Ruby Gem и столкнулся с этой проблемой:

uninitialized constant MysqlCompat::MysqlRes 

Но благодаря этому уроку я смог решить эту проблему, выполнив эту команду и установив предыдущую версию 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 

Теперь, когда я решил эту проблему, у меня возникает другая ошибка:

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

Это происходит, когда я пытаюсь запустить rake db:migrate а также когда сервер работает. Как я могу решить эту проблему?

2 Solutions collect form web for “Rails: невозможно подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock'”

Причина, по которой вы сталкиваетесь с этой ошибкой, заключается в том, что файл конфигурации database.yml вашего приложения rails указывает местоположение сокета.

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

Поскольку ваш Ubuntu MySQL Socket находится в другом месте, чем ваш Snow Leopard MySQL Socket, вам нужно будет создать символическую ссылку, если вы хотите иметь один и тот же файл конфигурации между разными компьютерами.

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

Примечание. Мне пришлось создать каталог mysqld прежде чем я смогу разместить в нем символическую ссылку.

Проверьте /tmp/mysql.sock.

Давайте будем гением компьютера.