ruby-on-rails - ruby /mysql mysql_adapter.rb :505:in 'real_connect' : cant convert String to Integer

标签 ruby-on-rails ruby typeerror

今天早上我来了,以与往常相同的方式启动我的应用程序,然后开始出现此错误。从那以后,我走遍了我能想到的每条路——直到删除并重新安装我机器上的每一个 ruby​​/rails 软件,包括 mysql。我已将我的申请精简为以下内容。

require 'rubygems'
require 'active_record'

class Job < ActiveRecord::Base

end

ActiveRecord::Base.establish_connection(
    :adapter     => "mysql",
    :host        => "192.168.254.22",  (I've also tried 127.0.0.1)
    :port        => "3306",
    :database    => "databasethingie",
    :username    => "root",
    :password    => "rootpassword"
)

job = Job.find(:first) 这是在运行 instant rails 2.0 的 Windows 机器上。

我仍然得到错误:

c:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/mysql_adapter.rb:505:in `real_connect': can't convert String into Integer (TypeError)
        from c:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/mysql_adapter.rb:505:in `connect'
        from c:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/mysql_adapter.rb:183:in `initialize'
        from c:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/mysql_adapter.rb:88:in `new'
        from c:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/mysql_adapter.rb:88:in `mysql_connection'
        from c:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:292:in `send'
        from c:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:292:in `connection='
        from c:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:260:in `retrieve_connection'
        from c:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:78:in `connection'
        from c:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:2693:in `quoted_table_name'
        from c:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:1469:in `construct_finder_sql'
        from c:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:1341:in `find_every'
        from c:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:1303:in `find_initial'
        from c:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:534:in `find'
        from tmp.rb:17

我看到过关于此的帖子提到了一个早在 1.5.2 天就已修复的错误,但我是最新的。 2.1.2等等,这里是怎么回事?我想知道这是否与最近对数据库配置的更改有关(授予 root 的全部权限),但重新安装似乎证明并非如此。

最佳答案

你试过吗:

:port => 3306

关于ruby-on-rails - ruby /mysql mysql_adapter.rb :505:in 'real_connect' : cant convert String to Integer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/279603/

相关文章:

ruby-on-rails - 您是否在 Git 提交中提交对数据库和迁移的更改?

Ruby:将变量合并到字符串中

ruby - 在登录页面上显示设计最小密码长度错误

ruby-on-rails - 嵌套资源并限制创建的路由 :only and :except

ruby-on-rails - 如何配置 procfile,sidekiq.yml 以便不同的 sidekiq 队列在 heroku 中的不同 dynos 上运行?

ruby-on-rails - Rails : Capistrano. 权限被拒绝(公钥)

ruby - 如何在 Ruby 中查找字符串中特殊字符之间的文本值?

python - 类型错误:需要字符串或缓冲区,找到列表

python - 为什么这个程序从 Aptana IDE 运行而不是在 python 命令中运行?

Python:简单类型错误