我正在尝试从我的Nodejs服务器连接到我的数据库,如下所示:
const db = new Sequelize(sql.database, sql.username, sql.password, sql.config);
const connectDB = async () => {
try {
await db.authenticate();
logger.info(`MySQL DB Connected: ${sql.config.host}`)
} catch (error) {
logger.error(`Error: ${error}`);
process.exit(1)
}
}
我的配置如下所示:
const sql = {
database: process.env.SQL_DATABASE as string,
username: process.env.SQL_USER as string,
password: process.env.SQL_PASSWORD,
config: {
dialect: "mysql" as Dialect,
host: "/cloudsql/{instance}" as string,
dialectOptions: {
socketPath: "/cloudsql/{instance}",
},
},
};
但是,我得到了一个sequelizeconnectionerror: connect ENOENT
在GCP中连接到我的Cloud SQL示例时,我是否遗漏了什么?
1条答案
按热度按时间wgx48brx1#
sql.config对象缺少用于访问数据库的“port”键。MySql中的默认端口为3306。
根据您的数据库设置,您还应该添加ssl配置选项。
如果你有SSL设置,你可以通过添加一个键“ssl”到你的dialentOptions,用一个包含“key”,“ca”和“cert”的对象传递适当的证书给它们。
您的代码将如下所示: