代码之家  ›  专栏  ›  技术社区  ›  Sangram Badi

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

  •  2
  • Sangram Badi  · 技术社区  · 6 年前

    我有一个NodeJs应用程序和MySQL数据库。 我已经在google云中部署了nodejs应用程序,并在 google cloud 并连接到nodejs应用程序 我可以成功部署应用程序,但应用程序无法连接到云数据库mysql dayabase。

    但我无法从已部署的nodejs应用程序连接到云mysql db

    错误 Database is not connectedError: connect ETIMEDOUT

    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
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Pasho Toska    6 年前

    在mysql的连接配置中,主机不在应用程序引擎上工作。你必须使用socketPath。socket path是要连接到的unix域套接字的路径。套接字路径必须是这样的

    var connection = mysql.createConnection({ sockePath : '/cloudsql/my-project-12345:us-central1:mydatabase', user : 'username', password : 'password', database : 'db_name' });

    如果你在GCloud上使用Postgres,这也是一个类似的过程 here