Rails 4部署后无法连接到mysql

Posted

技术标签:

【中文标题】Rails 4部署后无法连接到mysql【英文标题】:Rails 4 can not connect to mysql after deploy 【发布时间】:2015-02-16 06:02:36 【问题描述】:

我在部署到登台时遇到了一些问题,希望任何人都可以提出解决方案。

所以我将 Rails 4Capistrano 部署到 DO 液滴。我在不同的液滴上有生产/登台分支(实际上我是第一次部署登台并且无法使其工作)。 部署进展顺利,我的应用程序已准备好在“当前”文件夹中。但我遇到的麻烦是创建数据库。当我跑步时

RAILS_ENV=生产包 exec rake db:create

我明白了

无法为 "adapter"=>"mysql2", "encoding"=>"utf8", “重新连接”=>false,“数据库”=>“blabladb”,“池”=>5, "用户名"=>"root", "密码"=>"pass", "主机"=>"111.11.11.111", :charset=>"utf8", :collat​​ion=>"utf8_unicode_ci"

我转到 production.log,上面写着类似

的内容

致命的 Mysql2 错误无法连接到“111.11.11.111”上的 MySQL 服务器 (111)

我尝试从控制台连接到 mysql - 一切正常。我不知道这可能是什么问题。

当前文件夹中的我的 database.yml:

生产: 适配器:mysql2 编码:utf8 重新连接:假 数据库:blabladb 游泳池:5 用户名:root 密码:通过 主机:111.11.11.111

【问题讨论】:

host 的 IP 地址是从哪里得到的? 你能从控制台连接到同一个 MySQL 实例吗?也许您在没有意识到的情况下连接到本地实例。 @RobinFisher 是虚拟 IP,在实际应用中是水滴的 IP @tadman 对不起,我不明白你的意思,你能给我更多的细节吗? 您如何通过mysql 命令行工具进行连接? 【参考方案1】:

在你的 mysql 服务器中是否有与该 IP 地址对应的用户。这就是它与 localhost 而不是 IP 地址一起工作的原因。在生产环境中打开您的 mysql 服务器并检查是否在 IP 级别授予 root 访问权限。

【讨论】:

以上是关于Rails 4部署后无法连接到mysql的主要内容,如果未能解决你的问题,请参考以下文章

Rails 应用程序无法连接到 mysql,无法通过套接字 '/var/run/mysqld/mysql.sock' 连接到本地 MySQL 服务器 (2) (Mysql2::Error)

Rails 开发 - 无法连接到“localhost”上的 MySQL 服务器 (10061)

“无法连接到服务器:没有这样的文件或目录”在使用 beanstalk 部署 Rails 应用程序时

Rails 应用程序无法通过命名管道/套接字连接到本地 MySQL 服务器 --- Windows 7 x64

Grails 应用程序无法连接到 mysql 服务

无法使用php连接错误连接到mysql:无法连接到'localhost'(10061)上的MySQL服务器[重复]