Я знаю, что эта ветка старая, но, будучи ИТ-специалистом, который верит в то, что нужно хранить хорошую документацию в одном месте, она звучит так:
Проблема на самом деле связана с вашим файлом "config / database.yml".Вы указываете ROR на неправильное расположение для MySQL Socket.
Я столкнулся с этой проблемой, и оказалось, что гем был построен на системе Mac, а разработчик не учитывал другие операционные системы.поместив его файл «mysql.sock» в каталог «/ tmp», а не в «/var/run/mysqld/mysqld.sock».
Таким образом, его файл «database.yml» выглядел следующим образом:
development:
adapter: mysql2
#encoding: utf8
database: somedatabase
pool: 5
username: someusername
password: somepassword
socket: /tmp/mysql.sock
Поскольку я работал в системе Ubuntu, мне пришлось поменять мой на следующее:
development:
adapter: mysql2
#encoding: utf8
database: somedatabase
pool: 5
username: someusername
password: somepassword
socket: /var/run/mysqld/mysqld.sock
Да, ошибка может бытьоднако вводит в заблуждение, это не имеет никакого отношения к вашей «кодировке» или к тому, используете ли вы localhost или 127.0.0.1 (по крайней мере, в системах linux / UNIX они переводятся на одно и то же и являются синонимами)
Начать редактирование
Также не рекомендуется комментировать код, как я делал выше. Поэтому я предоставляю здесь модификацию для справки.
development:
adapter: mysql2
encoding: utf8
database: somedatabase
pool: 5
username: someusername
password: somepassword
socket: /var/run/mysqld/mysqld.sock
Конец редактирования