0

В настоящее время я пытаюсь развернуть мое приложение Rails 4 для AWS, но каждый раз, когда я пытаюсь просмотреть приложение на AWS, я получаю Ошибка приложения. Я проверяю журналы и посмотреть:Не удается подключиться к локальному серверу MySQL через сокет: я потерял [Rails App]

Не удается подключиться к локальному серверу MySQL через гнездо «/var/lib/mysql/mysql.sock» (2)

Я читал несколько вещи, такие как: this, но мне не повезло с этими различными решениями, и я свожу с ума.

Приложение работает нормально локально.

Вот некоторые подробности:

  • У меня есть сервер Mysql и Mysql установлен
  • сервис работает (опять все работает, как ожидалось локально)

Вот [клиент] часть of my.cnf, который находится по адресу/etc/mysql/

[client] 
port  = 3306 
socket  = /var/run/mysqld/mysqld.sock 

Я вижу несколько предложений мнения о mysqld, другие mysql - я не понимаю разницы.

database.yml

development: 
    adapter: mysql2 
    encoding: utf8 
    database: wp_development 
    pool: 5 
    username: root 
    password: **Left out 
    host: localhost 

Я скачал MySql сегодня, так что я на 5.5, последней сборки. * Я запускаю Linux.

Может ли кто-нибудь указать мне на решение?

Спасибо!

+0

Это было описано в других сообщениях. http://stackoverflow.com/questions/5499035/ruby-on-rails-3-cant-connect-to-local-mysql-server-through-socket-tmp-mysql-s –

+0

Как я уже говорил, Я видел кучу этих решений, и ничего не сработало. Сервер работает. У меня есть сокет в database.yml и изменение до 127.0.0.1 просто дает дополнительную ошибку «Не удается подключиться к MySql на 127.0.0.1». –

ответ

0

Если вы хотите подключиться локально, вы должны добавить socket: /var/run/mysqld/mysqld.sock в конфигурацию development в свою базу данных.yml.

Кроме того, убедитесь, что ваш RAILS_ENV верен при запуске приложения на AWS. Если он не установлен, то он должен быть development. Но я не уверен, как вы начинаете свое приложение.

+0

Итак, я добавил строку сокета в мою базу данных.yml, а AWS по умолчанию задает переменную RAILS_ENV, поэтому я изменил ее на «development». Я добился прогресса. Я больше не получаю страницу с ошибкой «Ошибка приложения» в AWS, теперь я получаю страницу с ошибками Rails, но страница все еще жалуется на «Не удается подключиться к локальному серверу MySQL через сокет»/var/run/mysqld/mysqld. sock '(2) "ошибка. –

+0

Я использую Beanstalk на AWS, чтобы запустить приложение. «eb start». Обращается практически ко всему, что я считаю. –

0

Причина может заключаться в том, что указанный путь сокета в вашем Gemfile может быть неправильным.

Во-первых, чтобы найти файл сокета:

mysqladmin variables | grep socket 

Для меня, это дает:

| socket /var/run/mysqld/mysqld.sock 

Затем добавьте эту строку /var/run/mysqld/mysqld.sock к вашей конфигурации/database.yml в поле сокета.См приведенные ниже примеры

Пример:socket: /var/run/mysqld/mysqld.sock

Режим Развитие

development: 
    adapter: mysql2 
    host: localhost 
    username: root 
    password: xxxx 
    database: xxxx 
    socket: /var/run/mysqld/mysqld.sock # this line 

Режим Производство

production: 
    adapter: mysql2 
    host: localhost 
    username: root 
    password: xxxx 
    database: xxxx 
    socket: /var/run/mysqld/mysqld.sock # this line 

Тестовый режим

test: 
    adapter: mysql2 
    host: localhost 
    username: root 
    password: xxxx 
    database: xxxx 
    socket: /var/run/mysqld/mysqld.sock # this line 
Смежные вопросы