ActiveRecord для использования MySQL именованных каналов на окнах

Можно ли подключиться из ruby ​​/ActiveRecord к базе данных mysql по именованным каналам. ОС - это Windows.

Благодарю.

2 ответа

Решение

После нескольких попыток и просмотра моих вызовов.net connect я наконец-то заработал.

Я использую activerecord в автономном скрипте.

Вот звонок, который работает:

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

Обратите внимание, что по умолчанию инструмент настройки, поставляемый с сервером mysql, настраивает сокет под названием "mysql". Я изменил это на mysql_test, чтобы убедиться, что я действительно перейду через именованный канал.

Приветствия.

Это не работает

Версия 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: в read': Packets out of order: 0<> (RuntimeError)
from C:/Ruby/lib/ruby/1.9.1/mysql.rb:444:in
читать' из C:/Ruby/lib/ruby/1.9.1/mysql.rb:110: в 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:in подключения" из C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/connection_adapters/mysql_adapter.rb:164: в initialize' from C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/connection_adapters/mysql_adapter.rb:36:in новый" из C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/connection_adapters/mysql_adapter.rb:36: в 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:in new_connection" из C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:236: в 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:in блок (2 уровня) в с heckout" от C: /Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_reco й / connection_adapters / абстрактные /connection_pool.rb:186: в 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:in блок в кассе от C:/Ruby/lib/ruby/1.9.1/monitor.rb:201: в 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:in проверять, выписываться' от C: /Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_reco й / connection_adapters / абстрактные /connection_pool.rb:93: в 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:in retrieve_connection" от C: /Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_reco й / connection_adapters / абстрактные /connection_specification.rb:97: в 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:in соединение" от C: /Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_reco е /base.rb:679: в columns' from C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/persistence.rb:284:in attributes_from_column_definition" из C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/locking/optimistic.rb:62: в attributes_from_column_definition' from C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/lib/active_record/base.rb:1394:in инициализировать" из C:/WorkspaceGunjan/TrafficTracker/TrafficTracker/TestProject/RubyPrograms/RubyPrograms/AccessTrafficTracker.rb:22: в 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>

Другие вопросы по тегам