【问题标题】:Mysql2::Error Access denied for user 'root'@'localhost' (using password: NO) ruby on railsMysql2::Error Access denied for user 'root'@'localhost' (using password: NO) ruby​​ on rails
【发布时间】:2015-05-08 05:49:34
【问题描述】:

我在 Ubuntu 上成功安装了 Ruby on Rails 4.2,并使用 MySQL 作为我的数据库,但是当我想查看使用 localhost:3000 在浏览器上创建的新应用程序时

我收到此错误消息:

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

Extracted source (around line #70):


        socket = socket.to_s unless socket.nil?

70      connect user, pass, host, port, database, socket, flags
      end

      def self.default_query_options

有什么帮助吗?

【问题讨论】:

  • 这是连接问题,您config/database.yml中的配置是否正确?
  • root 用户的 mysql 密码是多少?使用您的 root 用户的密码更新您的 config/database.yml
  • 您是否测试过您的数据库是否允许用户 root 在主机 localhost 上无密码访问?

标签: mysql ruby-on-rails ruby ruby-on-rails-4 mysql2


【解决方案1】:

我在我的 Mac OS 10.9 上安装了 Ruby 2.2、ROR 4.2.0、mysql server 5.6 并测试了我的第一个 ROR 应用程序。 Rails App默认使用sqlite3数据库,这次我尝试使用mysql。

这是我的步骤:

  1. 使用 CLI:rails new my_app -d mysql
  2. 进入 my_app 目录并通过 CLI 启动 rails 服务器:rails s
  3. 访问地址http://localhost:3000
  4. 然后,得到了和你一样的问题:一个 Mysql2 错误。 只需尝试检查文件:my_app/config/database.yml

    解决方案:为 root 用户提供密码值。 (应该和之前配置的mysql保持一致)。

  5. 重启 Rails 服务器。
  6. 然后,又得到一个 Mysql2 错误提示:未知数据库 XXX

    解决方法:这是因为 ROR 找不到数据库 XXX。转到 my_app 目录并使用 CLI 创建数据库:rake db:create

  7. 重启rails服务器并访问http://localhost:3000。好的!

【讨论】:

    猜你喜欢
    • 2018-08-17
    • 2021-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-01
    • 2021-09-08
    • 2014-10-12
    • 1970-01-01
    相关资源
    最近更新 更多