Mysql2::Error (Access denied for user 'root'@'localhost' (using password: NO)):

不羁岁月 提交于 2019-12-07 06:41:22

问题


Just setup a new rails 3.1.3 app using mysql (mysql2 gem) on CentOS 5 server / apache / passenger... I have correctly setup a database and a user for that database and I have added the login and info into my database.yml file... I can generate stuff, and rake db:migrate ok but the "We're sorry, but something went wrong." message is being rendered in the browser and this message is showing up in my production.log file!

Started GET "/" for xx.xxx.xx.xxx at 2011-12-29 19:52:35 -0600

Mysql2::Error (Access denied for user 'root'@'localhost' (using password: NO)):

weird, I am not using "root" as the login info in database.yml... Any suggestions?

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: the_db_I_made
  pool: 5
  username: the_user_I_made
  password: the_password
  socket: /var/lib/mysql/mysql.sock

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: the_db_I_made
  pool: 5
  username: the_user_I_made
  password: the_password
  socket: /var/lib/mysql/mysql.sock

回答1:


Bunch of questions / suggestions:

  1. Can you connect to the database using the terminal?

    mysql -u root -p
    
  2. Also, have you tried this on development mode? If so, please share the results.

  3. Try removing

    socket: /var/lib/mysql/mysql.sock
    
  4. Is the gem installation correct?

    gem check mysql2
    

EDIT:

There is a lot of difference in development and production mode ( including but not limited to, environment variables like the database connection string, asset pre-compilation, different level of logging, custom debug info on error pages )

** Embarrassing!!**

You have not included the "host" property in your config!

Try this:

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  host: your_host #<----- normally localhost
  database: the_db_I_made
  pool: 5
  username: the_user_I_made
  password: the_password
  socket: /var/lib/mysql/mysql.sock



回答2:


Ok, I guess this is all part of my learning curve :)

What it ended up being was this: The gem for passenger that I installed originally was version 3.0.9, I did a gem update --system and that installed version 3.0.11. So the server thought it was using version 3.0.11 and I was still pointing to libraries for 3.0.9 in my rails_server.conf file. I found how to upgrade on http://blog.phusion.nl/




回答3:


  1. In Ubuntu 1)/usr/bin/mysql_secure_installation 2) Run in Terminal follow the steps carefully change the mysql password here.Everything done .then go to database.yml change the password previously what u have created. Run rails server and check the application .. it will works



回答4:


Did you create the database "the_db_I_made"?

First create it, then only run it, else it will show this error continuously.

Now try to tun it.




回答5:


For Me It was giving error because of no database. So i created one Using :

$ rake db:create

And the problem was solved :D



来源:https://stackoverflow.com/questions/8675489/mysql2error-access-denied-for-user-rootlocalhost-using-password-no

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!