【问题标题】:Mysql2::Error Access denied for user 'root'@'localhost' (using password: YES) [duplicate]Mysql2::Error Access denied for user'root'@'localhost'(使用密码:YES)[重复]
【发布时间】:2015-11-04 14:04:55
【问题描述】:

我想运行一个 rake db:migrate,但是迁移被中止,我看到这个错误:

rake aborted!
Mysql2::Error: Access denied for user 'root'@'localhost' (using password: YES)
/home/marketa/.rvm/gems/ruby-2.2.1/gems/mysql2-0.3.20/lib/mysql2/client.rb:70:in `connect'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/mysql2-0.3.20/lib/mysql2/client.rb:70:in `initialize'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/mysql2_adapter.rb:18:in `new'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/mysql2_adapter.rb:18:in `mysql2_connection'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:438:in `new_connection'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:448:in `checkout_new_connection'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:422:in `acquire_connection'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:349:in `block in checkout'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:348:in `checkout'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:263:in `block in connection'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:262:in `connection'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:571:in `retrieve_connection'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_handling.rb:113:in `retrieve_connection'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_handling.rb:87:in `connection'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/migration.rb:913:in `initialize'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/migration.rb:820:in `new'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/migration.rb:820:in `up'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/migration.rb:798:in `migrate'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:137:in `migrate'
/home/marketa/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/railties/databases.rake:44:in `block (2 levels) in <top (required)>'
/home/marketa/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in `eval'
/home/marketa/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

如果我运行服务器,我会看到这个错误页面:

Mysql2::Error
Access denied for user 'root'@'localhost' (using password: YES)
Extracted source (around line #70):       


     socket = socket.to_s unless socket.nil?

      connect user, pass, host, port, database, socket, flags #70line is this
    end

    def self.default_query_options

我的 database.yml 文件如下所示:

default: &default
  adapter: mysql2
  pool: 5
  timeout: 5000
  host: localhost
  username: root
  password: hazzy93

development:
  <<: *default
  database: db/dev.mysql2

test:
  <<: *default
  database: db/test.mysql2

production:
  <<: *default
  database: db/production.mysql2

【问题讨论】:

  • 您是否可以使用这些凭据从即将到来的线路或其他工具连接到此数据库?
  • 更新您的数据库。 '数据库:“dev”'而不是'数据库:db/dev.mysql2'

标签: mysql ruby-on-rails ruby database database-connection


【解决方案1】:

试试这个

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: development
  pool: 5
  username: root
  password: hazzy93
  host: localhost


test:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: test
  pool: 5
  username: root
  password: hazzy93
  host: localhost

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: production
  pool: 5
  username: root
  password: hazzy93
  host: localhost

【讨论】:

  • 仍然无法正常工作:/
  • 您确定您的用户名和密码正确吗?
【解决方案2】:

您需要更正您的 database.yml 它应该是这样的:

default: &default
  adapter: mysql2
  host: 127.0.0.1
  port: 3306
  username: root
  password: hazzy93

development:
  <<: *default
  database: development

test:
  <<: *default
  database: test

production:
  <<: *default
  database: production

你使用了 sqlite3 的语法

【讨论】:

  • 不工作:/我仍然有同样的错误
  • 您的用户名和密码是否正确?
猜你喜欢
  • 1970-01-01
  • 2017-01-27
  • 2012-10-30
  • 2018-07-27
  • 2021-12-27
相关资源
最近更新 更多