【问题标题】:Rails Server ErrorRails 服务器错误
【发布时间】:2015-02-15 18:38:49
【问题描述】:

我最近使用 Homebrew 在 mac 上安装了 rails。我使用rails s 启动了rails 服务器,但是当我访问localhost:3000 时,出现以下错误。

Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

socket = socket.to_s unless socket.nil?

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

    def self.default_query_options

我已经用谷歌搜索了很多,但找不到解决方案。

编辑:

我使用 mysql.server start 启动了 mysql。它开始了。但是当我使用mysql -u root 时,会出现以下错误ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)。但是在 localhost:3000 中,它给出了这个错误 Access denied for user 'root'@'localhost' (using password: NO) 。据我所知,我没有为 mysql 设置任何密码。

【问题讨论】:

  • 这通常意味着您正在尝试连接到本地系统上的 MySQL 服务器,并且 MySQL 服务器未安装或未运行。您是否在本地系统上安装了 MySQL 服务器?
  • 是的,我做到了。 brew install mysql 。我就是这么做的。
  • 我并不精通 Mac 指令。根据快速搜索,尝试在此处进行以下对话:macosx.com/threads/how-can-i-see-if-mysql-is-running.316694
  • 另外,如何在基于 UNIX 的操作系统中使用终端单独启动 mysql ?什么通常是默认密码?那里需要一点帮助。
  • 安装 MySQL 服务器时,它会创建一个名为 root 的超级用户并要求您分配密码。你没有设置任何密码吗?如果不是,则使用空密码创建它。为了访问任何 MySQL 服务器,您还需要安装 MySQL Client。由于我使用的是 Debian Linux,我可以选择单独安装服务器和客户端,我不确定 homebrew 提供了哪些选项。

标签: mysql ruby-on-rails ruby installation failed-installation


【解决方案1】:

如果您的终端提供ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES),那么您肯定有密码。你可能已经忘记了。 另外,如果你记得的话,去config/database.yml文件并在那里填写你的mysql用户名和密码。

另外,如果您仍然没有得到密码;使用 brew remove mysql 卸载并尝试使用 oracle 网站上的 .dmg 安装程序。

【讨论】:

    【解决方案2】:

    该错误表示 Rails 无法连接到数据库。很可能 MySQL 没有运行,或者您错误地配置了 database.yml 文件。

    您写道,您通过 Homebrew 安装了 MySQL。 Homebrew 不会自动将 MySQL 配置为在系统启动时启动。这在设置结束时的输出中进行了解释,如果您运行 brew info mysql

    ==> Caveats
    A "/etc/my.cnf" from another install may interfere with a Homebrew-built
    server starting up correctly.
    
    To connect:
        mysql -uroot
    
    To reload mysql after an upgrade:
        launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
        launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    Or, if you don't want/need launchctl, you can just run:
        mysql.server start
    

    运行brew info mysql,并按照说明手动启动MySQL,或使用launchctl进行配置。

    您可以使用测试 MySQL 正在运行

    mysql -uroot
    

    还要确保使用正确的主机名、用户名和密码正确配置 database.yml 文件。这些值取决于您(或自制软件)如何配置您的 MySQL 实例。

    【讨论】:

    • 我使用 mysql.server start 启动了 mysql。它开始了。但是当我使用mysql -u root 时,会出现以下错误ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
    • 您(或以前的)设置似乎更改了 MySQL 默认配置。据我记得,默认情况下,Homebrew 使用 root 安装 MySQL,没有密码。
    • SO 中有几个关于自制软件和 MySQL 的问题。检查它们,或就该特定问题提出一个新的(更具体的)问题。
    【解决方案3】:

    确保您已通过/etc/init.d/mysqld start 启动 MySQL 服务器。

    mysql -u root 产生您正在谈论的错误。 mysql -u root -p 可以避免此错误(是的,额外的 p 有时可以解决您的问题)。

    如果这不起作用,那么您可以尝试以下命令序列:

    1. sudo /etc/init.d/mysqld stop 停止 MySQL 服务器
    2. sudo /etc/init.d/mysqld restart 重启 MySQL 服务器
    3. ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock 用于创建软 实际mysql.sock file/tmp/mysql.sock 之间的链接
    4. /usr/bin/mysql_secure_installation 为了安全 安装mysql。即使你有,你也可以运行它 已安装 MySQL(用于故障排除)。它会提示你输入 根密码。输入它,对于其他选项,只需输入 n 即可。

    【讨论】:

      猜你喜欢
      • 2014-03-13
      • 2019-02-26
      • 2012-11-13
      • 2016-04-28
      • 1970-01-01
      • 1970-01-01
      • 2017-01-14
      • 2011-12-04
      相关资源
      最近更新 更多