问题
I got a rails project in version 2.3.8. When i tried to run rake db:create, the below error occured.
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)
And I created DB manually and tried to run the application. And now I am getting this error.
/!\ FAILSAFE /!\ Tue May 10 20:38:48 +0530 2011
Status: 500 Internal Server Error
uninitialized constant MysqlCompat::MysqlRes
I tried with both Webrick and mongrel and it seems like same cause for both issue.
回答1:
Ah, this error is so common. Its MySQL. Here is the solution. Change paths as required. Let us know how you get on. All the best.
export ARCHFLAGS="-arch i386 -arch x86_64" gem install mysql -- --with-mysql-dir=/usr/local \ --with-mysql-config=/usr/local/bin/mysql_config
回答2:
I ran into the same error. In my case, the problem was that I hadn't created the MySQL user who was specified in database.yml
.
mysql --user=root mysql
grant all privileges on *.* to 'user_name_here'@'localhost' identified by 'password_here';
exit;
来源:https://stackoverflow.com/questions/5952265/rake-dbcreate-generated-if-you-set-the-charset-manually-make-sure-you-have-a