Mysql2 :: Error(用户'root'@'localhost'拒绝访问(使用密码:NO)):

时间:2011-12-30 02:07:59

标签: ruby-on-rails mysql2

在CentOS 5服务器/ apache / passenger上使用mysql(mysql2 gem)设置一个新的rails 3.1.3应用程序...我已正确设置数据库和该数据库的用户,我已将登录和信息添加到我的database.yml文件...我可以生成东西,并且rake db:migrate ok但是“我们很抱歉,但出了点问题。”消息正在浏览器中呈现,此消息显示在我的production.log文件中!

于2011-12-29 19:52:35 -0600开始获取xx.xxx.xx.xxx的“/”

Mysql2 ::错误(用户'root'@'localhost'拒绝访问(使用密码:NO)):

很奇怪,我没有使用“root”作为database.yml中的登录信息...有什么建议吗?

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

5 个答案:

答案 0 :(得分:4)

一堆问题/建议:

  1. 您可以使用终端连接到数据库吗?

    mysql -u root -p
    
  2. 另外,您是否在开发模式下尝试过此操作?如果是,请分享结果。

  3. 尝试删除

    socket: /var/lib/mysql/mysql.sock
    
  4. 宝石安装是否正确?

    gem check mysql2
    
  5. 修改

    开发和生产模式有很多不同(包括但不限于环境变量,如数据库连接字符串,资产预编译,不同级别的日志记录,错误页面上的自定义调试信息)

    **令人尴尬!! **

    您的配置中未包含“host”属性!

    试试这个:

    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
    

答案 1 :(得分:1)

好的,我想这是我学习曲线的一部分:)

它最终是这样的:我最初安装的乘客的宝石是版本3.0.9,我做了一个宝石更新--system并且安装了版本3.0.11。所以服务器认为它使用的是3.0.11版,我仍然指向我的rails_server.conf文件中的3.0.9库。我找到了如何升级http://blog.phusion.nl/

答案 2 :(得分:0)

  1. 在Ubuntu中1)/ usr / bin / mysql_secure_installation 2)在终端中运行 按照步骤仔细更改mysql密码 here.Averything done。然后转到database.yml更改密码 以前你创造的。运行rails服务器并检查 申请..它会起作用

答案 3 :(得分:0)

您是否创建了数据库&#34; the_db_I_made&#34;

首先创建它,然后只运行它,否则它将连续显示此错误。

现在尝试调整它。

答案 4 :(得分:0)

For Me由于没有数据库,它给出了错误。所以我创建了一个使用:

$ rake db:create

问题解决了:D