2012-02-05 19 views
5

मैंने मैम को mysql2 इंस्टॉल किया है, lib फ़ाइल को lib फ़ाइल में जोड़ा गया है और mysql2 मणि ​​फ़ाइल में है। गलत क्या है?रेल पर रूबी में MySQL से कनेक्ट नहीं हो सकता

# MySQL. Versions 4.1 and 5.0 are recommended. 
# 
# Install the MYSQL driver 
# gem install mysql2 
# 
# Ensure the MySQL gem is defined in your Gemfile 
# gem 'mysql2' 
# 
# And be sure to use new-style password hashing: 
# http://dev.mysql.com/doc/refman/5.0/en/old-client.html 
development: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: dealers 
    pool: 5 
    username: fredric 
    password: test 
    host: localhost 

Mysql2::Error (Access denied for user 'fredric'@'localhost' (using password: YES)): 
    mysql2-0.3.11-x86 (mingw32) lib/mysql2/client.rb:44:in `connect' 
    mysql2-0.3.11-x86 (mingw32) lib/mysql2/client.rb:44:in `initialize' 
    activerecord (3.2.1) lib/active_record/connection_adapters/mysql2_adapter.rb:16:in `new' 
    activerecord (3.2.1) lib/active_record/connection_adapters/mysql2_adapter.rb:16:in `mysql2_connection' 
    activerecord (3.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:277:in `new_connection' 
    activerecord (3.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:287:in `checkout_new_connection' 
    activerecord (3.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:235:in `block (2 levels) in checkout' 
    activerecord (3.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:230:in `loop' 
    activerecord (3.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:230:in `block in checkout' 
    C:/Ruby193/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' 
    activerecord (3.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:229:in `checkout' 
    activerecord (3.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection' 
    activerecord (3.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:374:in `retrieve_connection' 
    activerecord (3.2.1) lib/active_record/connection_adapters/abstract/connection_specification.rb:168:in `retrieve_connection' 
    activerecord (3.2.1) lib/active_record/connection_adapters/abstract/connection_specification.rb:142:in `connection' 
    activerecord (3.2.1) lib/active_record/query_cache.rb:67:in `rescue in call' 
    activerecord (3.2.1) lib/active_record/query_cache.rb:61:in `call' 
    activerecord (3.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:443:in `call' 
    actionpack (3.2.1) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call' 
    activesupport (3.2.1) lib/active_support/callbacks.rb:405:in `_run__874471498__call__280582312__callbacks' 
    activesupport (3.2.1) lib/active_support/callbacks.rb:405:in `__run_callback' 
    activesupport (3.2.1) lib/active_support/callbacks.rb:385:in `_run_call_callbacks' 
    activesupport (3.2.1) lib/active_support/callbacks.rb:81:in `run_callbacks' 
    actionpack (3.2.1) lib/action_dispatch/middleware/callbacks.rb:27:in `call' 
    actionpack (3.2.1) lib/action_dispatch/middleware/reloader.rb:65:in `call' 
    actionpack (3.2.1) lib/action_dispatch/middleware/remote_ip.rb:31:in `call' 
    actionpack (3.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call' 
    actionpack (3.2.1) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call' 
    railties (3.2.1) lib/rails/rack/logger.rb:26:in `call_app' 
    railties (3.2.1) lib/rails/rack/logger.rb:16:in `call' 
    actionpack (3.2.1) lib/action_dispatch/middleware/request_id.rb:22:in `call' 
    rack (1.4.1) lib/rack/methodoverride.rb:21:in `call' 
    rack (1.4.1) lib/rack/runtime.rb:17:in `call' 
    activesupport (3.2.1) lib/active_support/cache/strategy/local_cache.rb:72:in `call' 
    rack (1.4.1) lib/rack/lock.rb:15:in `call' 
    actionpack (3.2.1) lib/action_dispatch/middleware/static.rb:53:in `call' 
    railties (3.2.1) lib/rails/engine.rb:479:in `call' 
    railties (3.2.1) lib/rails/application.rb:220:in `call' 
    rack (1.4.1) lib/rack/content_length.rb:14:in `call' 
    railties (3.2.1) lib/rails/rack/log_tailer.rb:14:in `call' 
    rack (1.4.1) lib/rack/handler/webrick.rb:59:in `service' 
    C:/Ruby193/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service' 
    C:/Ruby193/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run' 
    C:/Ruby193/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread' 


    Rendered C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-3.2.1/lib/action_dispatch/middleware/templates/rescues/_trace.erb (3.0ms) 
    Rendered C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-3.2.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (39.0ms) 
    Rendered C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-3.2.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (108.0ms) 
[2012-02-05 20:30:54] WARN Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true 

उत्तर

3

यह आपके PRIVILEGES सेटिंग्स के कारण एक्सेस नियंत्रण समस्या की तरह दिखता है। याद रखें कि localhost अधिकारों को प्रदान करते समय % द्वारा कवर किया गया एक विशेष मामला नहीं है क्योंकि यह स्थानीय यूनिक्स सॉकेट से कनेक्ट होगा और पोर्ट 3306 टीसीपी सॉकेट नहीं होगा।

आपको जांचना चाहिए कि आप एक ही मशीन एप्लिकेशन mysql कमांड लाइन उपकरण का उपयोग पर चल रहा है से कनेक्ट कर सकते हैं:

mysql --user=frederic --password=test dealers 

आप इस बिंदु पर Mysql2 चालक के रूप में एक ही त्रुटि मिलना चाहिए।

आम तौर पर यह अपने अनुदान अपडेट करके तय हो गई है:

GRANT ALL PRIVILEGES ON dealers.* to `frederic`@`localhost` IDENTIFIED BY 'test' 
+0

धन्यवाद! मुझे 127.0.0.1 का उपयोग करने के बजाय स्थानीयहोस्ट में बदलना पड़ा और यह काम करता है! – LuckyLuke

+0

और रास्ते में ताडमैन: क्या अंतर है? – LuckyLuke

+0

यह MySQL के अभिगम नियंत्रण तंत्र का कुछ quirk है। 'लोकलहोस्ट' "स्थानीय यूनिक्स सॉकेट" के लिए उपनाम है और यह हर किसी के साथ 127.0.0.1 को कॉल करने में भ्रमित नहीं है। आप अपनी कॉन्फ़िगरेशन में 'सॉकेट:/var/lib/mysql/mysqld.sock' निर्दिष्ट करना चाहते हैं, या जो भी वास्तव में है, अधिक स्पष्ट रूप से भिन्न करने के लिए। आप यह पता लगा सकते हैं कि आपकी सॉकेट सेटिंग 'SHOW VARIABLES LIKE' सॉकेट 'का उपयोग करके क्या होनी चाहिए, इस प्रकार आपका MySQL सर्वर वर्तमान में कॉन्फ़िगर किया गया है। – tadman

संबंधित मुद्दे