Ruby on Rails MYSQL错误用户'root @ localhost'拒绝访问

时间:2011-07-30 23:31:44

标签: mysql ruby-on-rails ruby-on-rails-3

使用新应用启动rails服务器时出现以下错误:

/Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/mysql2/client.rb:37:in“connect”:拒绝访问用户'root'@'localhost'(使用密码:YES)(Mysql2 ::错误)

这是我的database.yml

# MySQL.  Versions 4.1 and 5.0 are recommended.
#
# Install the MySQL driver:
#   gem install 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: group_chat_development
  pool: 5
  username: root
  password: admin
  socket: /tmp/mysql.sock

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: group_chat_test
  pool: 5
  username: root
  password: admin
  socket: /tmp/mysql.sock

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: group_chat_production
  pool: 5
  username: root
  password: admin
  socket: /tmp/mysql.sock

以下是完整的错误消息

MacPro:FireDemon fred$ rails s
=> Booting Mongrel
=> Rails 3.0.3 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/mysql2/client.rb:37:in `connect': Access denied for user 'root'@'localhost' (using password: YES) (Mysql2::Error)
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/mysql2/client.rb:37:in `initialize'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/active_record/connection_adapters/mysql2_adapter.rb:14:in `new'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/active_record/connection_adapters/mysql2_adapter.rb:14:in `mysql2_connection'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:228:in `new_connection'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `checkout_new_connection'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:190:in `block (2 levels) in checkout'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:186:in `loop'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:186:in `block in checkout'
    from /Users/fred/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:185:in `checkout'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:93:in `connection'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:316:in `retrieve_connection'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:97:in `retrieve_connection'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:89:in `connection'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/base.rb:1330:in `replace_bind_variables'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/base.rb:1317:in `sanitize_sql_array'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/base.rb:1224:in `sanitize_sql_for_conditions'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/relation/query_methods.rb:206:in `build_where'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/relation/query_methods.rb:77:in `where'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/base.rb:441:in `where'
    from /Users/fred/Desktop/FireDemon/app/models/user.rb:14:in `<class:User>'
    from /Users/fred/Desktop/FireDemon/app/models/user.rb:1:in `<top (required)>'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:454:in `load'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:454:in `block in load_file'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:596:in `new_constants_in'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:453:in `load_file'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:340:in `require_or_load'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:491:in `load_missing_constant'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:183:in `block in const_missing'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:181:in `each'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:181:in `const_missing'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/inflector/methods.rb:124:in `block in constantize'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/inflector/methods.rb:123:in `each'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/inflector/methods.rb:123:in `constantize'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/core_ext/string/inflections.rb:43:in `constantize'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.3/lib/active_model/observing.rb:182:in `observed_class'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.3/lib/active_model/observing.rb:175:in `observed_classes'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.3/lib/active_model/observing.rb:195:in `observed_classes'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.3/lib/active_model/observing.rb:191:in `initialize'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/observer.rb:96:in `initialize'
    from /Users/fred/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/singleton.rb:109:in `new'
    from /Users/fred/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/singleton.rb:109:in `block in instance'
    from <internal:prelude>:10:in `synchronize'
    from /Users/fred/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/singleton.rb:107:in `instance'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.3/lib/active_model/observing.rb:66:in `instantiate_observer'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.3/lib/active_model/observing.rb:39:in `block in instantiate_observers'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.3/lib/active_model/observing.rb:39:in `each'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.3/lib/active_model/observing.rb:39:in `instantiate_observers'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/railtie.rb:83:in `block (2 levels) in <class:Railtie>'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/lazy_load_hooks.rb:26:in `on_load'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/railtie.rb:82:in `block in <class:Railtie>'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/lazy_load_hooks.rb:34:in `call'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/lazy_load_hooks.rb:34:in `execute_hook'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/lazy_load_hooks.rb:43:in `block in run_load_hooks'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/lazy_load_hooks.rb:42:in `each'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/lazy_load_hooks.rb:42:in `run_load_hooks'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/application/finisher.rb:46:in `block in <module:Finisher>'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/initializable.rb:25:in `instance_exec'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/initializable.rb:25:in `run'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/initializable.rb:50:in `block in run_initializers'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/initializable.rb:49:in `each'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/initializable.rb:49:in `run_initializers'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/application.rb:134:in `initialize!'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/application.rb:77:in `method_missing'
    from /Users/fred/Desktop/FireDemon/config/environment.rb:5:in `<top (required)>'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `require'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `block in require'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `block in load_dependency'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:596:in `new_constants_in'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `load_dependency'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `require'
    from /Users/fred/Desktop/FireDemon/config.ru:3:in `block in <main>'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/builder.rb:46:in `instance_eval'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/builder.rb:46:in `initialize'
    from /Users/fred/Desktop/FireDemon/config.ru:1:in `new'
    from /Users/fred/Desktop/FireDemon/config.ru:1:in `<main>'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/builder.rb:35:in `eval'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/builder.rb:35:in `parse_file'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/server.rb:162:in `app'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/server.rb:248:in `wrapped_app'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/server.rb:213:in `start'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/commands/server.rb:65:in `start'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/commands.rb:30:in `block in <top (required)>'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/commands.rb:27:in `tap'
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/commands.rb:27:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'
MacPro:FireDemon fred$ 

10 个答案:

答案 0 :(得分:16)

好像您的用户无法连接到MySQL DB。在控制台中尝试以下命令:

mysql -u root -p

出现提示时,请将密码设为“admin”

如果可以,那么你应该好好去。

答案 1 :(得分:12)

config/database.yml文件中root用户的密码错误。如果忘记了密码,可以随时使用mysqladmin命令更改root用户的密码。

答案 2 :(得分:3)

方便的家庭提示 - 我也被困在这上面但发现环回(127.0.0.1)!='localhost'...我有主机:127.0.0.1并且看到了这个确切的问题。快速更改为“localhost”为我解决了这个问题...希望它有所帮助。

development:
 adapter: mysql2
 database: mydb
 host: localhost
 username: root
 password: mypass

答案 3 :(得分:1)

答案在你的问题中&gt; MYSQL错误用户'root @ localhost'的访问被拒绝

将具有管理员密码的root用户应用于您的group_chat_development MySQL数据库

<强>更新 在我看来,您可能根本不希望为您的开发和测试数据库使用msQL,在这种情况下将您的database.yml文件测试和开发设置更改为

# SQLite version 3.x
#   gem install sqlite3-ruby (not necessary on OS X Leopard)
development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

如果您不知道如何使用MySQL工具,那么您应该很快习惯使用它们,因为您很可能在生产服务器环境中需要它们 您将在此处找到指向MySQL相关版本的链接http://dev.mysql.com/doc/ 使用MySQL Administrator设置用户权限。

答案 4 :(得分:1)

所以我被困了一段时间。

检查文件config / database.yml并检查您的设置。

default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: root
  socket: ( check what your socket location is by typing mysqladmin version into termnal)

然后进入终端并输入

mysql -u root -p

最后关闭终端并重新打开,然后

bundle instal

然后

rails s

接缝就像你必须再次捆绑安装才能进行更改。

希望有所帮助!

答案 5 :(得分:1)

这对我有用

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password’;


mysql> FLUSH PRIVILEGES;
mysql> exit;

在上述命令之后尝试

mysql -u root -p

答案 6 :(得分:0)

如果您是第一次设置mysql root密码,请键入以下命令,如下所示:

mysqladmin密码

您将被提示输入新密码并确认密码。

确认后尝试使用您刚刚设置的用户root和密码登录。

mysql root @&#39;你的新密码&#39;

注意:您必须以root用户身份登录,然后才能设置mysql密码。

感谢。

答案 7 :(得分:0)

对我来说,它是通过定义用户名来解决的,而不是将其保留为空

development:
    adapter: mysql2
    database: my_db
    encoding: utf8
    username: # ADD DATABASE USERNAME
    password: # ADD DATABASE PASSWORD
    host: localhost

所以我将所有数据库的内容更改为以下内容

development:
    adapter: mysql2
    database: my_db
    encoding: utf8
    username: root
    password: # ADD DATABASE PASSWORD
    host: localhost

而且效果很好,希望这会有所帮助

答案 8 :(得分:-1)

你应该在database.yml文件的devlepment中给出“host:”字段。 主机名必须是“IP”地址,如“127.0.0.1”或某些东西.. 即“主持人:127.0.0.1” 然后重新启动服务器并输入地址,如'127.0.0.1:3000' 这里3000是港口提名者......

答案 9 :(得分:-1)

如果您使用oracle软件包安装,请尝试通过

登录您的mysql
mysql -u username

然后运行

FLUSH PRIVILEGES;

然后设置密码

SET PASSWORD FOR 'username'@'localhost' = PASSWORD('[password]');