Ruby on Rails MYSQL 错误用户“root@localhost”拒绝访问
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/6886583/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Ruby on Rails MYSQL error Access denied for user 'root@localhost'
提问by user852974
I get the following error when starting rails server with a new app:
使用新应用程序启动 rails 服务器时出现以下错误:
/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)
/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::Error)
Here is my database.yml
这是我的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
Below is the full error message
以下是完整的错误信息
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$
采纳答案by sameera207
Seems like your user cannot connect to the MySQL DB. Try these commands in your console:
似乎您的用户无法连接到 MySQL 数据库。在您的控制台中尝试这些命令:
mysql -u root -p
And when prompted, give the password as 'admin'
出现提示时,将密码设为“admin”
If this is possible, then you should be good to go.
如果这是可能的,那么你应该很高兴。
回答by Chris Ledet
The password is wrong for the root user in your config/database.yml
file. You can always use the mysqladmin
command to change the root user's password if you forgot it.
config/database.yml
文件中root 用户的密码错误。mysqladmin
如果您忘记了 root 用户的密码,您可以随时使用该命令来更改它。
回答by lucygenik
Handy home hint - I was stuck on this too but found that loopback (127.0.0.1) != 'localhost'... I had host: 127.0.0.1 and was seeing this exact problem. A quick change to 'localhost' fixed this for me... hope it helps someone.
方便的主页提示 - 我也被困在这个问题上,但发现环回 (127.0.0.1) != 'localhost'...我有主机:127.0.0.1 并且看到了这个确切的问题。对“本地主机”的快速更改为我解决了这个问题……希望它对某人有所帮助。
development:
adapter: mysql2
database: mydb
host: localhost
username: root
password: mypass
回答by Deepak Nagar
This is worked for me
这对我有用
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';?
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';?
mysql> FLUSH PRIVILEGES;
mysql> exit;
After the above commands try
上面的命令尝试后
mysql -u root -p
回答by Sabba Keynejad
So i was stuck with the problem for a while.
所以我被这个问题困扰了一段时间。
CHECK the file config/database.yml and check your settings.
检查文件 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)
Then Go into terminal and type
然后进入终端并输入
mysql -u root -p
And FINALLY Close terminal and re open it, then
最后关闭终端并重新打开它,然后
bundle install
then
然后
rails s
It seams like you have to bundle install again for the changes to take place.
看起来您必须再次捆绑安装才能进行更改。
Hope that helps!
希望有帮助!
回答by jamesc
The answer is in your question > MYSQL error Access denied for user 'root@localhost'
答案在您的问题中 > MYSQL 错误 Access denied for user 'root@localhost'
Apply root user with admin password to your group_chat_development MySQL database
将具有管理员密码的 root 用户应用到您的 group_chat_development MySQL 数据库
updateIt occurs to me that you may not wish to be using msQL at all for your dev and test databases in which case change you database.yml file test and development settings to
更新我发现您可能根本不希望将 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
If you do not know how to use MySQL tools then you should get used to using them very soon as you most likely will need them in your production server environment You will find links to the relevant version on MySQL that you are using here http://dev.mysql.com/doc/Use MySQL Administrator to set your user permissions.
如果您不知道如何使用 MySQL 工具,那么您应该很快习惯使用它们,因为您很可能在您的生产服务器环境中需要它们您将在此处找到您正在使用的 MySQL 相关版本的链接http:/ /dev.mysql.com/doc/使用 MySQL Administrator 设置您的用户权限。
回答by Santosh Singh-Bagadhbilla
If you are setting mysql root password for the first time then type following commands as follow:
如果您是第一次设置 mysql root 密码,请输入以下命令,如下所示:
mysqladmin password
管理员密码
You will be Prompted for new password and confirm password.
系统将提示您输入新密码和确认密码。
After confirmation try to login with user root and password which you have just set.
确认后尝试使用您刚刚设置的用户 root 和密码登录。
mysql root@'your-new-password'
mysql root@'你的新密码'
Note : You must login as a root then only you will be able to set the mysql password.
注意:您必须以 root 身份登录,然后才能设置 mysql 密码。
Thanks.
谢谢。
回答by Hussam Kurd
For me, Its resolved by defining the username, Instead of leaving it blank
对我来说,它通过定义用户名来解决,而不是将其留空
development:
adapter: mysql2
database: my_db
encoding: utf8
username: # ADD DATABASE USERNAME
password: # ADD DATABASE PASSWORD
host: localhost
So I just change it for all the databases to the following
所以我只是将所有数据库的它更改为以下内容
development:
adapter: mysql2
database: my_db
encoding: utf8
username: root
password: # ADD DATABASE PASSWORD
host: localhost
And It works fine, Hope this will helps
它工作正常,希望这会有所帮助
回答by Edmund Lee
If you installed using the oracle package, try login your mysql by
如果您使用 oracle 包安装,请尝试通过以下方式登录您的 mysql
mysql -u username
Then run
然后运行
FLUSH PRIVILEGES;
Then set your password
然后设置密码
SET PASSWORD FOR 'username'@'localhost' = PASSWORD('[password]');
回答by Ramesh
you should give the " host: " field in the devlepment in database.yml file. that host name must be " IP " address,like "127.0.0.1" or some thing.. ie " host: 127.0.0.1 " and again restart the server and type on the address like ' 127.0.0.1:3000 ' here 3000 is the port nomber...
您应该在 database.yml 文件的 devlepment 中提供“host:”字段。该主机名必须是“ IP ”地址,例如“ 127.0.0.1”或某些东西..即“主机:127.0.0.1”并再次重新启动服务器并键入地址,例如'127.0.0.1:3000'这里3000是端口号...