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.