2012-12-02 62 views
-1

我正在使用Rails 3.2来构建Rails应用程序与MySQL作为我的开发数据库。但是当我执行rake db:migrate时,发生以下错误。 对于错误Fixnum字符串,很多人说这是因为密码是数字,但我的密码已经是字符串。我不知道哪个步骤会产生错误。Rails3 - Mysql2 - 耙错误

请帮忙。

这里是我的database.yml

development: 
adapter: mysql2 
encoding: utf8 
reconnect: false 
database: nwapp_development 
pool: 5 
username: root 
password: mysqlroot 
host: 3306 

这里是我的耙分贝:创建--trace错误

$ rake db:create --trace 
** Invoke db:create (first_time) 
** Invoke db:load_config (first_time) 
** Execute db:load_config 
** Invoke rails_env (first_time) 
** Execute rails_env 
** Execute db:create 
rake aborted! 
can't convert Fixnum into String 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/client.rb:44:in `connect' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/client.rb:44:in `initialize' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in `new' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in `mysql2_connection' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:315:in `new_connection' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:325:in `checkout_new_connection' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:247:in `block (2 levels) in checkout' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:242:in `loop' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:242:in `block in checkout' 
c:/Ruby193/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:239:in `checkout' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:102:in `block in connection' 
c:/Ruby193/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:101:in `connection' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:410:in `retrieve_connection' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_specification.rb:171:in `retrieve_connection' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_specification.rb:145:in `connection' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/railties/databases.rake:106:in `rescue in create_database' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/railties/databases.rake:74:in `create_database' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/railties/databases.rake:62:in `block (3 levels) in <top (required)>' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/railties/databases.rake:62:in `each' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/railties/databases.rake:62:in `block (2 levels) in <top (required)>' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/lib/rake/task.rb:227:in `call' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/lib/rake/task.rb:227:in `block in execute' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/lib/rake/task.rb:222:in `each' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/lib/rake/task.rb:222:in `execute' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/lib/rake/task.rb:166:in `block in invoke_with_call_chain' 
c:/Ruby193/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/lib/rake/task.rb:159:in `invoke_with_call_chain' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/lib/rake/task.rb:152:in `invoke' 

c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/lib/rake/application.rb:141:in `invoke_task' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/lib/rake/application.rb:99:in `block (2 levels) in top_level' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/lib/rake/application.rb:99:in `each' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/lib/rake/application.rb:99:in `block in top_level' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/lib/rake/application.rb:108:in `run_with_threads' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/lib/rake/application.rb:93:in `top_level' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/lib/rake/application.rb:71:in `block in run' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/lib/rake/application.rb:158:in `standard_exception_handling' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/lib/rake/application.rb:68:in `run' 
c:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.2/bin/rake:37:in `<top (required)>' 
c:/Ruby193/bin/rake:23:in `load' 
c:/Ruby193/bin/rake:23:in `<main>' 
Tasks: TOP => db:create 

更新1:

这里被更新的database.yml

development: 
adapter: mysql2 
encoding: utf8 
reconnect: false 
database: nwapp_development 
pool: 5 
username: root 
password: mysqlroot 
host: localhost 
port: 3306 

这是结果从添加端口和主机更改

$ rake db:create 
Can't connect to MySQL server on 'localhost' (10061) 
Couldn't create database for {"adapter"=>"mysql2", "encoding"=>"utf8", "reconnect"=>false, "database"=>"nwapp_development", "pool"=>5, "username"=>"root", "password"=>"mysqlroot", "host"=>"localhost", "port"=>3306}, charset: utf8, collation: 
(if you set the charset manually, make sure you have a matching collation) 
Can't connect to MySQL server on 'localhost' (10061) 
Couldn't create database for {"adapter"=>"mysql2", "encoding"=>"utf8", "reconnect"=>false, "database"=>"nwapp_test", "pool"=>5, "username"=>"root", "password"=>nil, "host"=>"localhost"}, charset: utf8, collation: 
(if you set the charset manually, make sure you have a matching collation) 

更新2:

我需要手动创建MySQL服务器中的数据库。

这里是我的database.yml

development: 
adapter: mysql2 
encoding: utf8 
reconnect: false 
database: nwapp_development 
pool: 5 
username: root 
password: mysqlroot 
host: 127.0.0.1 
port: 3306 
+2

3306看起来更像是一个端口号比主机名。 –

+0

请参阅我的更新1.似乎mysql服务器无法识别。 – iamprogram

+0

尝试将套接字添加到数据库文件。 –

回答

0

拓展上万亩的评论您需要更改host: 3306喜欢的东西host: localhosthost: 127.0.0.1

3306是mySQL通信的默认端口,因此不需要显式设置。仍然如果你想要你可以有port: 3306在database.yml

+0

请参阅我的更新1.似乎像MySQL服务器无法识别。 – iamprogram