4

Итак, у меня есть приложение 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 ответа2

5

Причина, по которой вы сталкиваетесь с этой ошибкой, заключается в том, что конфигурационный файл 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 прежде чем я смог поместить в него символическую ссылку.

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .