gpt4 book ai didi

mysql - 从 Heroku 上的 Node.js 连接到 CloudSQL

转载 作者:太空宇宙 更新时间:2023-11-03 23:51:27 24 4
gpt4 key购买 nike

我有一个 Node.js 应用程序(在 AppEngine 上运行)连接到 GCP CloudSQL (MySQL) 实例。现在我想从 Heroku 上运行的 Node.js (Knex) 连接到同一个数据库。

Node.js 通过用户/密码和套接字路径从 AppEngine 进行连接。我还通过主机 IP(通过 SSL)从 MySQL Workbench 连接到同一个 MySQL 数据库。

我尝试使用与 Heroku 的工作台相同的主机、端口、用户和通行证,但它不起作用。为了尝试使其变得简单,我暂时允许所有网络连接 (0.0.0.0/0),并允许非 SSL 连接。

错误如下:ER_ACCESS_DENIED_ERROR:用户“usernamehere”@“xx.xxx.xxx.xx”的访问被拒绝(使用密码:YES)”

环境变量存储在 Heroku 应用程序中,并且它们必须正常工作,因为用户名是正确的。

这不是很有帮助,但代码如下:

import Knex = require('knex');
const envConfig = require('../config/environments').get(process.env.NODE_ENV);
module.exports = knex;

最佳答案

我发现解决此问题的唯一方法是通过 SSL 连接到 CloudSQL。

const mysql = require("mysql");
const fs = require('fs');
const knex = require('knex')({
client: 'mysql',
version: '5.7',
connection: {
host : 'xx.xx.xx.xx',
ssl: {
ca: fs.readFileSync('ca.pem'),
key: fs.readFileSync('client-key.pem'),
cert: fs.readFileSync('client-cert.pem'),
},
user : 'root',
password : 'xxxxxxxxx',
database : 'mydbname',
},
});

关于mysql - 从 Heroku 上的 Node.js 连接到 CloudSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59299695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com