Rails 服务器错误

Rails Server Error

我最近使用 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

我已在 Google 上搜索了足够多,但找不到解决方案。

编辑:

我开始 mysql 使用 mysql.server 开始。它开始了。但是当我使用 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 设置任何密码。

错误的意思是Rails无法连接到数据库。 MySQL 可能不是 运行ning,或者您错误配置了 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是运行ning
mysql -uroot

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

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

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

请确保您已在 /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用于创建软 link 在实际 mysql.sock file/tmp/mysql.sock
  4. 之间
  5. /usr/bin/mysql_secure_installation 为了安全 安装 mysql。你可以 运行 即使你有 MySQL 已安装(用于故障排除)。它会提示你输入 根密码。输入它,对于其他选项,只需键入 n 即可。