【问题标题】:Rails connecting to wrong port when rendering views渲染视图时 Rails 连接到错误的端口
【发布时间】:2015-09-30 20:12:20
【问题描述】:

我目前正在研究这个错误,但到目前为止我还无法找出问题所在。

当我运行 mysqld 启动 mysql 服务器时,除了这两个错误之外,一切似乎都运行良好。

RSA private key file not found: /usr/local/var/mysql//private_key.pem. Some authentication plugins will not work.
RSA public key file not found: /usr/local/var/mysql//public_key.pem. Some authentication plugins will not work.

注意路径有双斜线。我假设 mysql 自动生成这些密钥并使用它们,因为我自己从未手动创建它们。

但是,我的 rails 应用程序的服务器似乎运行良好,并显示加载视图的成功消息,但在我收到错误页面之前,浏览器会保持空白约 1 分钟。这是错误页面的内容:

Errno::ETIMEDOUT - Operation timed out - connect(2) for "localhost" port 35729

所以看起来 Rails 正在尝试通过端口 35729 连接到本地 mysql 服务器,但它运行在端口 3306 上?我已在 database.yml 中明确设置此端口号,但无济于事。显然,故事远不止这些,我目前正试图弄清楚这里还发生了什么。

这里是database.yml引用的database.local.yml

development:
adapter:  mysql2
database: somepages_dev
pool: 5
timeout:  5000
encoding: utf8

我可以通过键入 mysql 进入 mysql 命令行。所以好像 rails 配置错误?

另外,我发现通过切换到其他 rails 项目,数据库到 rails 的连接工作正常。当我创建一个新的 Rails 项目时也可以正常工作。

编辑 database.locl.yml 文件时,我尝试过: 到目前为止,我已经尝试了一些排列,所有这些都返回相同的错误。我尝试只使用主机。然后是主机+端口。然后就是袜子路径。然后是袜子路径+主机+端口。每次进行更改时,我都会重新启动我的 Rails 服务器。

** 最奇怪的可能是我仍然可以运行 rake 命令来编辑数据库。我可以做 rake db:drop && rake db:create && rake db:migrate && rake db:seed 一切运行顺利。

只有在尝试渲染视图时才会弹出错误

提前感谢您的帮助!

【问题讨论】:

  • 你能发布database.yml吗?
  • 好的,我已经用 database.yml 文件更新了问题。
  • 尝试设置host: 127.0.0.1port: 3306。这有时会迫使它工作。如果您知道 mysql.sock 文件的位置,则套接字方法通常更可靠。
  • 你可以先添加 port: 3306 到那个配置
  • 此时您可能想看看这是否会影响您正在处理的项目以外的其他项目。例如rails new,看看那个全新的是否也以同样的方式搞砸了。

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


【解决方案1】:

问题是我使用 LiveReload。

{:live_reload_port=>35729}

只有一半的应用程序被激活。我运行了桌面应用程序,但没有运行浏览器对应的应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    相关资源
    最近更新 更多