Невозможно разгрести db: create: all - Не удалось создать базу данных для {"encoding" => "utf8", "username" => "root", "adapter" => "mysql" - PullRequest
7 голосов
/ 07 апреля 2011

Я пытаюсь запустить приложение rails на моем компьютере, и у меня возникают проблемы с созданием баз данных. Я правильно установил / установил rails, mysql и установил гем mysql 2.8.1 (я проверил это с помощью списка гемов).

Итак, я пытаюсь запустить 'rake db: create: all' и получаю следующую ошибку:

Не удалось создать базу данных для { "Кодирование" => "utf8", "Имя пользователя" => "корень", "adapter" => "mysql", "database" => "pyo", "host" => "localhost", "password" => nil, "socket" => "/ tmp / mysql.sock"}, кодировка: utf8, сопоставление: utf8_unicode_ci (если Вы устанавливаете кодировку вручную, делаете уверен, что у вас есть подходящее сопоставление)

Не удалось создать базу данных для { "Кодирование" => "utf8", "Имя пользователя" => "корень", "адаптер" => "MySQL", "База данных" => "pyo_test", "host" => "localhost", "password" => nil, "socket" => "/ tmp / mysql.sock"}, кодировка: utf8, сопоставление: utf8_unicode_ci (если Вы устанавливаете кодировку вручную, делаете уверен, что у вас есть подходящее сопоставление)

В настоящее время я использую 5.5.10 MySQL Community Server (GPL) на Snow Leopard (10.6.6)

А вот что находится в моем файле database.yml

development:
  adapter: mysql
  encoding: utf8
  database: pyo
  username: root
  password:
  socket: /tmp/mysql.sock
  host: localhost

test:
  adapter: mysql
  encoding: utf8
  database: pyo_test
  username: root
  password:
  socket: /tmp/mysql.sock
  host: localhost

Я замечаю, как в конце ошибки говорится «charset: utf8, collation: utf8_unicode_ci (если вы устанавливаете charset вручную, убедитесь, что у вас есть соответствующее сопоставление)» - В этом ли проблема? И если да, то как мне это исправить?

Я застрял на этом в течение нескольких часов и не могу найти ничего, что поможет в Google. Поэтому любая помощь на этом этапе будет высоко оценена.

Спасибо !!

Ответы [ 5 ]

3 голосов
/ 03 января 2015

Я знаю, что эта ветка старая, но, будучи ИТ-специалистом, который верит в то, что нужно хранить хорошую документацию в одном месте, она звучит так:

Проблема на самом деле связана с вашим файлом "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

Конец редактирования

2 голосов
/ 31 мая 2011

У меня возникла та же проблема с самоцветом mysql2. Затем я обнаружил, что мой MySQL прослушивает только «localhost», а не «127.0.0.1», поэтому я изменил его на «localhost», и теперь у меня больше нет этой проблемы. Теперь все работает.

2 голосов
/ 07 апреля 2011

думаю, у меня было что-то вроде этого ... исправлено, добавив это в database.yml:

host: 127.0.0.1

Или, в вашем случае, изменив его с localhost.

0 голосов
/ 15 декабря 2017

Я хочу поделиться своим решением. У меня был свой database.yml, как следует

default: &default
  adapter: mysql2
  encoding: utf8
  username: root
  password: 
  host: 127.0.0.1
  port: 3306

development:
  <<: *default
  database: dev.database

Моя ошибка была в этой строке

database: dev.database

Итак, я пишу без (.)

database: devdatabase
0 голосов
/ 09 апреля 2011

Итак, после 3 или 4 дней поисков и поисков, я как-то наткнулся на это:

http://geryit.com/blog/2011/01/installing-mysql-with-rails-on-mac-os-x-snow-leopard/

И угадайте что? ОНО РАБОТАЕТ! В СОВЕРШЕНСТВЕ. Что приводит меня к мысли, что проблема заключается в MySQL 5.5.10. Что-то в этом не будет хорошо играть в моей среде ruby ​​/ rails. Однако после того, как я следовал инструкциям по приведенной выше ссылке (которые включают удаление mysql и переустановку 5.1), мое приложение теперь отлично работает на моей локальной машине.

Надеюсь, это кому-нибудь поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...