我正在尝试使用云函数从GCP云MySQL数据库中获取数据。云函数是用Nodejs编写的。此函数正在进行查询,以便从数据库中获取数据。我已经创建了一个连接到函数和MySQL的无服务器VPC连接器。MYSQL启用了私有IP。但是,我得到以下错误:
错误:连接ETIMEDOUT在 at Object.onceWrapper (events.js:519:28) at Socket.emit (events.js:400:28) at Socket.emit (domain.js:537:15) at Socket._onTimeout (net.js:495:8) at listOnTimeout ( connect /timers.js:557:17) at processTimers (内部/timers.js:500:7)错误:连接ETIMEDOUT在PoolConnection。(/workspace/node_modules/mysql/lib/Connection.js:409:13) at Object.onceWrapper (events.js:519:28) at Socket.emit (events.js:400:28) at Socket.emit (domain.js:537:15) at Socket._onTimeout (net.js:495:8) at listOnTimeout (内部/Timers.js:557:17) at processTimers (内部/Timers.js:500:7)

下面是我的云函数代码:
const mysql = require('mysql');
const mysqlConfig = {
connectionLimit: 1,
host: '10.217.208.5',
port: '3306',
user: 'root',
password: 'tmc',
database: 'tmc'
};
let mysqlPool;
exports.helloWorld = (req, res) => {
mysqlPool = mysql.createPool(mysqlConfig);
mysqlPool.query(`SELECT * FROM tmc`, function (error, results) {
console.log(error);
console.log(results)
res.status(200).send(results);
});
};实例

专用连接网络:

GCP功能VPC连接器

发布于 2022-08-10 11:19:25
在我的例子中,这是一个防火墙问题。我允许了一个特定的IP,一切都成功了。如果您面临类似的问题,您还可以尝试在SQL连接设置中允许0.0.0.0/0 (仅用于测试)。0.0.0.0/0向世界打开SQL
https://stackoverflow.com/questions/73279799
复制相似问题