【问题标题】:ActiveRecord to use mysql named pipes on windowsActiveRecord 在 Windows 上使用 mysql 命名管道
【发布时间】:2010-09-08 14:44:15
【问题描述】:

是否可以通过命名管道从 ruby​​/ActiveRecord 连接到 mysql 数据库。 操作系统是 Windows。

谢谢。

【问题讨论】:

    标签: mysql ruby activerecord named-pipes


    【解决方案1】:

    经过几次尝试并查看了我的 .net 连接调用后,我终于可以正常工作了。

    我在独立脚本中使用 activerecord。

    这是有效的调用:

    ActiveRecord::Base.establish_connection(
        :adapter => "mysql",
        :host => ".",
        :username => "root", 
        :password => "root", 
        :database => "test",
        :socket => "mysql_test")
    

    请注意,默认情况下,mysql服务器自带的配置工具会配置一个名为“mysql”的socket。我已将其更改为 mysql_test 以验证我确实正在检查命名管道。

    干杯。

    【讨论】:

      【解决方案2】:

      这不行

      Ruby 版本:1.9.1 mysql版本:5.0

      编写的代码是:

      
          require "rubygems"
          require "active_record"
          puts "1"
          class Source < ActiveRecord::Base
              puts "2"
              establish_connection(
                      :adapter => "mysql",
                      :host => "localhost",
                      :username => "root",
                      :password => "root@123",
                      :database => "TrafficTracker"
                  )
          end
          puts "3"
          traffic_source = Source.find(1)
          puts "4"
          puts traffic_source.source_name
      

      上面的代码打印到 3 并在 Source.find(1) 处中断并出现错误:

      1 2 3 C:/Ruby/lib/ruby/1.9.1/mysql.rb:1019:in read': Packets out of order: 0<> (RuntimeError)
      from C:/Ruby/lib/ruby/1.9.1/mysql.rb:444:in
      read' 来自 C:/Ruby/lib/ruby/1.9.1/mysql.rb:110:in real_connect' from C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/connection_adapters/mysql_adapter.rb:600:inconnect' 来自 C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/connection_adapters/mysql_adapter.rb:164:in initialize' from C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/connection_adapters/mysql_adapter.rb:36:innew' 来自 C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/connection_adapters/mysql_adapter.rb:36:in mysql_connection' from C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:228:innew_connection' 来自 C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in checkout_new_connection' from C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:190:inblock (2 个级别) 在 c 见鬼' 来自 C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_reco rd/connection_adapters/abstract/connection_pool.rb:186:in loop' from C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_reco rd/connection_adapters/abstract/connection_pool.rb:186:inblock in checkout' 来自 C:/Ruby/lib/ruby/1.9.1/monitor.rb:201:in mon_synchronize' from C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_reco rd/connection_adapters/abstract/connection_pool.rb:185:incheckout' 来自 C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_reco rd/connection_adapters/abstract/connection_pool.rb:93:in connection' from C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_reco rd/connection_adapters/abstract/connection_pool.rb:316:inretrieve_connection' 来自 C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_reco rd/connection_adapters/abstract/connection_specification.rb:97:in retrieve_conn ection' from C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_reco rd/connection_adapters/abstract/connection_specification.rb:89:inconnection' 来自 C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_reco rd/base.rb:679:in columns' from C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/persistence.rb:284:inattributes_from_column_definition' 来自 C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/locking/optimistic.rb:62:in attributes_from_column_definition' from C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/base.rb:1394:ininitialize' 来自 C:/WorkspaceGunjan/TrafficTracker/TrafficTracker/TestProject/RubyPrograms/RubyPrograms/AccessTrafficTracker.rb:22:in new' from C:/WorkspaceGunjan/TrafficTracker/TrafficTracker/TestProject/RubyPrograms/RubyPrograms/AccessTrafficTracker.rb:22:in' C:\WorkspaceGunjan\TrafficTracker\TrafficTracker\TestProject\RubyPrograms\RubyPrograms> C:\WorkspaceGunjan\TrafficTracker\TrafficTracker\TestProject\RubyPrograms\RubyPrograms> C:\WorkspaceGunjan\TrafficTracker\TrafficTracker\TestProject\RubyPrograms\RubyPrograms>

      【讨论】:

      • 你在 Windows 上吗?尝试 ”。”作为主持人
      • Tx memical,但它不起作用。最后,在MySql和Postgresql上尽我所能,我能够成功连接MySql。在stackoverflow.com/questions/4888740/…查找详细信息
      猜你喜欢
      • 1970-01-01
      • 2015-04-12
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      • 2010-10-21
      • 2011-09-23
      • 1970-01-01
      • 2018-07-10
      相关资源
      最近更新 更多