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 а также когда сервер работает. Как я могу решить эту проблему?

  • Как полностью удалить Ruby, Ruby gems на Mac OS X 10.6.4
  • 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.

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