网络未知的 Heroku cleardb 连接默认地址

Heroku cleardb connection default addr for network unknown

我已经为我的应用程序创建了一个免费的 Heroku cleardb 实例。我将数据库 URL 设置为:

heroku config:set DATABASE_URL='mysql://user:pass@us-cdbr-iron-east-03.cleardb.net/heroku_database?reconnect=true'

我正在尝试使用 Go 应用程序进行连接。但是当我尝试访问我的应用程序时,它给出了以下 mysql 错误:

default addr for network 'us-cdbr-iron-east-03.cleardb.net' unknown

我也尝试使用协议和端口设置数据库 url:

heroku config:set DATABASE_URL='mysql://user:pass@tcp(us-cdbr-iron-east-03.cleardb.net:3306)/heroku__database?reconnect=true'

这会将错误更改为:

Access denied for user

我猜这是因为不允许直接访问端口。有人知道这里的问题是什么吗?

这是一个 Go 特定问题。需要进行三处更改:

  1. Gosql.Open 已经将 scheme 作为其第一个参数,因此需要将其从 DATABASE_URL.
  2. 中剥离
  3. 连接字符串不应包含任何查询参数(删除 ?reconnect=true)。
  4. 需要协议 (tcp) 和端口(MySQL 为 3306)编号

因此最终数据库 URL 将是:

DATABASE_URL='user:pass@tcp(us-cdbr-iron-east-03.cleardb.net:3306)/your_heroku_database'