rake db: ошибка create generated «если вы задаете кодировку вручную, убедитесь, что у вас есть соответствующие параметры сортировки»

#mysql #ruby-on-rails #database #rake

#mysql #ruby-on-rails #База данных #rake

Вопрос:

Я получил проект rails в версии 2.3.8. Когда я попытался запустить rake db: create, произошла приведенная ниже ошибка.

 Couldn't create database for {"encoding"=>"utf8", "username"=>"root", "adapter"=>"mysql", "database"=>"claims_test", "host"=>"localhost", "password"=>"root", "socket"=>"/var/run/mysqld/mysqld.sock"}, charset: utf8, collation: utf8_unicode_ci   
(if you set the charset manually, make sure you have a matching collation)
  

И я создал DB вручную и попытался запустить приложение. И теперь я получаю эту ошибку.

 /! FAILSAFE /!  Tue May 10 20:38:48  0530 2011  
  Status: 500 Internal Server Error  
  uninitialized constant MysqlCompat::MysqlRes  
  

Я пробовал как с Webrick, так и с mongrel, и, похоже, у обеих проблем одна и та же причина.

Ответ №1:

Ах, эта ошибка настолько распространена. Это MySQL. Вот решение. Измените пути по мере необходимости. Дайте нам знать, как у вас дела. Всего наилучшего.

 export ARCHFLAGS="-arch i386 -arch x86_64" gem install mysql -- --with-mysql-dir=/usr/local  --with-mysql-config=/usr/local/bin/mysql_config
  

Комментарии:

1. Я не думаю, что этот ответ применим в 2016 году.

Ответ №2:

Я столкнулся с той же ошибкой. В моем случае проблема заключалась в том, что я не создал пользователя MySQL, который был указан в database.yml .

 mysql --user=root mysql
grant all privileges on *.* to 'user_name_here'@'localhost' identified by 'password_here';
exit;