首页 > 解决方案 > Node可以连接到maria数据库但pm2不能

问题描述

我在 Google Cloud 上有一个 VM 实例。当我从命令行运行我的 Node 应用程序时,我的网站会显示数据库信息,但是当我使用 pm2 启动同一个应用程序时,我看不到这些信息,并且我没有收到任何错误来说明为什么会发生这种情况。如何让我的应用程序在由 pm2 运行时连接到我的数据库。

这是一个代码片段:

app.get('/gregs-garments/clothing-data', async (req,res) => {
const poolClothes = mariadb.createPool({
    host: 'localhost',
    user: 'myUser',
    port: 3306,
    password: process.env.DB_PWD,
    database: 'gregs_garments'
});
let sqlquery = 'SELECT * FROM clothes;';
let conn = await poolClothes.getConnection();
let rows = await conn.query(sqlquery);
res.json(rows);

更新: 这是 pm2 错误日志:

0|mysite   |  From event:
0|mysite   |     at _registerHandshakeCmd (/mysite/node_modules/mariadb/lib/connection.js:735:11)
0|mysite   |     at /mysite/node_modules/mariadb/lib/connection.js:57:11
0|mysite   |     at new Promise (<anonymous>)
0|mysite   |     at Connection.connect (/mysite/node_modules/mariadb/lib/connection.js:56:16)
0|mysite   |     at createConnectionPoolPromise (/mysite/node_modules/mariadb/lib/pool-promise.js:31:8)
0|mysite   |     at creationTryout (/mysite/node_modules/mariadb/lib/pool-base.js:352:9)
0|mysite   |     at /mysite/node_modules/mariadb/lib/pool-base.js:371:7
0|mysite   |     at new Promise (<anonymous>)
0|mysite   |     at connectionCreationLoop (/mysite/node_modules/mariadb/lib/pool-base.js:336:12)
0|mysite   |     at process.nextTick (/mysite/node_modules/mariadb/lib/pool-base.js:443:11)
0|mysite   |   fatal: true,
0|mysite   |   errno: 1045,
0|mysite   |   sqlState: '28000',
0|mysite   |   code: 'ER_ACCESS_DENIED_ERROR' }

标签: node.jsgoogle-cloud-platform

解决方案


推荐阅读