轨道 : Heroku CI : Mysql2::错误: 无法连接到 '127.0.0.1' (111) 上的 MySQL 服务器进行测试环境



我已经使用托管在远程服务器上的mysql数据库将一个rails应用程序部署到heroku。为此,我添加了 heroku 插件"cleardb"并设置了正确的 ENV 配置变量,指定:

DATABASE_URL = mysql2://user:password@host?reconnect=true

我还为三个分支(分支 -> 环境(设置了 Heroku 持续部署

develop -> devint,
staging -> staging,
master -> production

持续部署工作正常,数据库设置也很好(因为当我在 rails 应用程序中创建记录时,我可以看到远程 mysql 主机中的数据(。

我的问题是,当我启用 HEROKU CI 时,每次构建都会失败,并显示一条错误消息Mysql2::Error: Can't connect to MySQL server on '127.0.0.1' (111)

此处的完整错误:https://gist.github.com/siddhantbhardwaj/dab7c435815e7729d0f70081449f21ff#file-gistfile1-txt

当 Heroku CI 尝试为 :test 环境执行rake db:schema:load_if_ruby时,会发生这种情况

。我的数据库.yml看起来像:

default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: what_course_development
username: user
password: password
socket: /tmp/mysql.sock
test:
<<: *default
database: what_course_test
devint:
<<: *default
url: <%= ENV['DATABASE_URL'] %>
staging:
<<: *default
url: <%= ENV['DATABASE_URL'] %>
production:
<<: *default
url: <%= ENV['DATABASE_URL'] %>

请查看以下建议,以便从DATABASE_URL配置数据库.yml:

DatabaseUrl.to_active_record_hash('postgres://uuu:xxx@127.0.0.1:1234/abc')

这将提供以下结果:

{:adapter=>"postgres", :host=>"127.0.0.1", :port=>1234, :database=>"abc", :user=>"uuu", :password=>"xxx"}

请参阅seamusabshere database_url了解更多信息。

最新更新