2009-10-01 8 views
1

Je vais avoir un problème lors de l'exécution rake db: créer:Rails db: créer une erreur de classement

[[email protected] /domain/rails/testapp ]# rake db:create --trace 
(in /domain/rails/testapp) 
** Invoke db:create (first_time) 
** Invoke db:load_config (first_time) 
** Invoke rails_env (first_time) 
** Execute rails_env 
** Execute db:load_config 
** Execute db:create 
Couldn't create database for {"adapter"=>"mysql", "encoding"=>"utf8", "collation"=>"utf8_bin", "reconnect"=>false, "database"=>"testapp_development", "pool"=>5, "username"=>"root", "password"=>"rootpass", "socket"=>"/var/run/mysqld/mysqld.sock", "host"=>"127.0.0.1"}, charset: utf8, collation: utf8_bin (if you set the charset manually, make sure you have a matching collation) 

J'ai joint toutes les versions possibles et les paramètres d'information que je peux penser ci-dessous. J'ai essayé toutes les solutions que j'ai trouvées sur google et n'ai eu aucune chance. Quelqu'un at-il des solutions ou des suggestions? Merci!

[[email protected] /domain/rails/testapp ]# mysql --version 
mysql Ver 14.14 Distrib 5.1.38, for unknown-linux-gnu (x86_64) using EditLine wrapper 

mysql> show variables like "character_set_database"; 
+------------------------+-------+ 
| Variable_name   | Value | 
+------------------------+-------+ 
| character_set_database | utf8 | 
+------------------------+-------+ 
1 row in set (0.00 sec) 

mysql> show variables like "collation_database"; 
+--------------------+----------+ 
| Variable_name  | Value | 
+--------------------+----------+ 
| collation_database | utf8_bin | 
+--------------------+----------+ 
1 row in set (0.00 sec) 

[[email protected] /domain/rails/testapp ]# ruby -v 
ruby 1.9.1p243 (2009-07-16 revision 24175) [x86_64-linux] 

[[email protected] /domain/rails/testapp ]# rails -v 
Rails 2.3.4 

[[email protected] /domain/rails/testapp ]# gem -v 
1.3.5 

[[email protected] /domain/rails/testapp ]# gem list 

*** LOCAL GEMS *** 

actionmailer (2.3.4) 
actionpack (2.3.4) 
activerecord (2.3.4) 
activeresource (2.3.4) 
activesupport (2.3.4) 
cgi_multipart_eof_fix (2.5.0) 
daemons (1.0.10) 
fastthread (1.0.7) 
gem_plugin (0.2.3) 
mysql (2.8.1) 
rack (1.0.0) 
rails (2.3.4) 
rake (0.8.7) 
rubygems-update (1.3.5) 

Mon database.yml:

development: 
    adapter: mysql 
    encoding: utf8 
    collation: utf8_bin 
    reconnect: false 
    database: testapp_development 
    pool: 5 
    username: root 
    password: rootpass 
    socket: /var/run/mysqld/mysqld.sock 
    host: 127.0.0.1 

Répondre

0

Avez-vous essayé de ne pas spécifiant le classement? Je spécifie l'encodage et non le classement pour ma base de données MySQL, en utilisant utf8 et cela fonctionne.

+0

Merci pour la réponse. J'ai essayé sans spécifier ni l'encodage ni le classement, mais aucune de ces permutations n'a fonctionné. –

0

Modifiez la ligne de collation dans votre fichier database.yml en respectant les valeurs suivantes show variables like "collation_server";. Puis, essayez rake RAILS_ENV=development db:create.

Questions connexes