Rails 4部署后无法连接到mysql
Posted
技术标签:
【中文标题】Rails 4部署后无法连接到mysql【英文标题】:Rails 4 can not connect to mysql after deploy 【发布时间】:2015-02-16 06:02:36 【问题描述】:我在部署到登台时遇到了一些问题,希望任何人都可以提出解决方案。
所以我将 Rails 4 与 Capistrano 部署到 DO 液滴。我在不同的液滴上有生产/登台分支(实际上我是第一次部署登台并且无法使其工作)。 部署进展顺利,我的应用程序已准备好在“当前”文件夹中。但我遇到的麻烦是创建数据库。当我跑步时
RAILS_ENV=生产包 exec rake db:create
我明白了
无法为 "adapter"=>"mysql2", "encoding"=>"utf8", “重新连接”=>false,“数据库”=>“blabladb”,“池”=>5, "用户名"=>"root", "密码"=>"pass", "主机"=>"111.11.11.111", :charset=>"utf8", :collation=>"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 应用程序时