【发布时间】: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.1和port: 3306。这有时会迫使它工作。如果您知道mysql.sock文件的位置,则套接字方法通常更可靠。 -
你可以先添加 port: 3306 到那个配置
-
此时您可能想看看这是否会影响您正在处理的项目以外的其他项目。例如
rails new,看看那个全新的是否也以同样的方式搞砸了。
标签: mysql ruby-on-rails macos ruby-on-rails-4