Skip to main content
 首页 » 编程设计

ruby-on-rails之Mysql2::Error (Access denied for user 'root' @'localhost' (using password: NO)):

2025年05月04日22Free-Thinker

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

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

Mysql2::Error(用户'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 

请您参考如下方法:

一堆问题/建议:

  • 您可以使用终端连接到数据库吗?
    mysql -u root -p 
    
  • 另外,您是否在开发模式下尝试过这个?如果是这样,请分享结果。
  • 尝试删除
    socket: /var/lib/mysql/mysql.sock 
    
  • gem安装正确吗?
    gem check mysql2 
    

  • 编辑:

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

    ** 尴尬!!**

    您尚未在配置中包含“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