Ошибка при попытке создать базу данных с Rails, rake db: create

Я использую Ruby1.9 и Rails 2.3.4, и у меня установлен gem mysql-ruby (2.8.1).

когда я пытаюсь использовать rake db: create Я получаю следующее

Не удалось создать базу данных для { "адаптер" = > "MySQL", "База данных" = > "war_development", "username" = > "root", "password" = > nil, "host" = > "localhost" }, charset: utf8, collation: utf8_unicode_ci (если вы установили кодировку вручную, убедитесь, что вы имеют совпадающую сортировку)

У моей базы данных .yml есть следующее для разработки

development:
  adapter: mysql
  database: war_development
  username: root
  password: 
  host: localhost

Любые идеи, что происходит не так?

Спасибо,

Там

Ответы

Ответ 1

Можно ли использовать пользователя root без пароля? Является ли mysqlserver прослушиванием 127.0.0.1 или localhost?

Ответ 2

Странно видеть, что какое-то поведение изменилось, и я не знаю, характерен ли он для снежного барса. Я использую тигра и получаю ту же ошибку. Я добавил

  host: 127.0.0.1

к следующему (конечно же, с правильным mysql root/pw)

development:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: blog_development
  pool: 5
  username: root
  password: *********
  socket: /tmp/mysqld.sock

И это сработало (на tiger/gem mysql-2.8.1/mysql Ver 14.14. Распространение 5.1.30). Надеюсь, что это поможет.

Ответ 3

Я выполнил шаги в другом потоке fooobar.com/questions/337887/.... Однако команда для моей установки отличается от команды там, поскольку я не обновляю существующий db, а устанавливаю новую. Поэтому вместо того, чтобы советовать одному

$ sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

Я набрал следующие

$ sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql/bin/mysql

PS: host: localhost остается как есть, не нужно менять 127.0.0.1

Ответ 4

$ sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql/bin/mysql

работает для меня. Спасибо!

Ответ 5

Вы проверите свое имя пользователя и пароль, правильно ли оно или нет. Также вы проверите, работает ли ваш сервер mysql правильно. а также некоторое время обнаружил проблему сокета-сокета большую часть времени, когда он находится внутри/tmp-каталога, но иногда это может и не быть. поэтому попробуйте использовать путь по умолчанию.

Надеюсь, если вы попробуете это, он будет работать на вас.