【发布时间】:2020-04-05 13:20:52
【问题描述】:
我有一个连接到 GCP CloudSQL (MySQL) 实例的 Node.js 应用程序(在 AppEngine 上运行)。现在我想从运行在 Heroku 上的 Node.js (Knex) 连接到同一个数据库。
从 AppEngine,Node.js 通过用户/密码和 socketPath 连接。我还通过主机 IP(通过 SSL)从 MySQL Workbench 连接到同一个 MySQL DB。
我正在尝试使用与 Heroku 中的 Workbench 相同的主机、端口、用户和传递,但它无法正常工作。为方便起见,我暂时允许所有网络连接 (0.0.0.0/0) 并允许非 SSL 连接。
这是错误:ER_ACCESS_DENIED_ERROR: Access denied for user 'usernamehere'@'xx.xxx.xxx.xx' (using password: YES)"
环境变量存储在 Heroku 应用程序中,它们必须工作,因为用户名是正确的。
这不是很有帮助,但这里是代码:
import Knex = require('knex');
const envConfig = require('../config/environments').get(process.env.NODE_ENV);
module.exports = knex;
【问题讨论】:
-
您收到的错误消息是 MySQL 请验证您的连接信息是否正常。 here 发生了同样的问题,有一些解决方法
-
@JoséSoní 不,很遗憾没有。我已经解决了这些建议,但新用户、新通行证和 npm 包更新问题仍然存在。
-
你是如何连接到 cloudSQl 的,如果你在 cloudSQL 端获取日志,你能分享一下吗?
标签: mysql node.js heroku google-cloud-sql knex.js