如何从google云连接mysql数据库和nodejs

zphenhs4  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(367)

我有一个nodejs应用程序和mysql数据库。我在google云上部署了nodejs应用程序,并在google云上创建了mysql数据库 google cloud 连接到nodejs应用程序我可以成功部署应用程序,但应用程序无法连接到云mysql dayabase。
但当我尝试从本地mysql工作台连接cloudmysql时,它成功地连接到了数据库。我能够从本地nodejs应用程序连接云mysql数据库
但我无法从部署的nodejs应用程序连接到云mysql数据库
错误 Database is not connectedError: connect ETIMEDOUT 数据库.js

var mysql = require('mysql');
var PropertiesReader = require('properties-reader');
var properties = PropertiesReader('./db.properties');

var connection = mysql.createConnection({
    connectionLimit : properties.get('pool'),
    host: properties.get('hostname'),
    user: properties.get('username'),
    password: properties.get('password'),
    database: properties.get('dbname')
});

connection.connect(function (err) {
    if (!err) {
        console.log("Database is connected");
    } else {
        console.log("Database is not connected" + err);
    }
}
);

module.exports = connection;

附录yaml

runtime: nodejs
env: flex
ryevplcw

ryevplcw1#

在mysql的连接配置中,主机在appengine上不工作。你必须使用socketpath。socketpath是要连接到的unix域套接字的路径。套接字路径必须如下所示 var connection = mysql.createConnection({ socketPath : '/cloudsql/my-project-12345:us-central1:mydatabase', user : 'username', password : 'password', database : 'db_name' }); 如果你在gcloud上使用postgres,这是一个类似的过程

相关问题