使用firebase云函数的非google mysql数据库连接

uhry853o  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(331)

当我尝试连接到mysql时,服务器向我发送了一个错误 Error: connect ETIMEDOUT 下面是示例代码

const mysql = require('mysql');
const mysqlConfig = {
        connectionLimit: 1,
        host: "remote_host_ip",
        user: "server_user",
        password: "server_pass",
        database: "server_db",
        port: 3306
    };
    mysql.createConnection(mysqlConfig).connect(function (err) {
        if (!err) {
            console.log("Database is connected");
        } else {
            console.log("Database is not connected " + err);
        }
    });

我正在执行firebase blaze(现收现付)计划。

k10s72fa

k10s72fa1#

我知道问题的标题已经说明了这一点,但是你没有使用gcp云sql,对吗?
在这种情况下,云函数很可能无法访问mysql服务器。你确定网络连接正常吗?
此外,即使在云函数中,使用连接池也是一个好主意。考虑使用它,它会是这样的:

var config = {
    user: 'root',
    password: 'akdaskdasdaE',
    database: 'database1'
  }
  config.connectionLimit = 10
  config.multipleStatements = true

  // needed in GCP Cloud SQL, but it seems it's not your case
  // config.socketPath = `/cloudsql/__INSTANCE_CONNECTION_NAME__`

  var connectionPool = mysql.createPool(config)
  connectionPool.on('connection', () => {
      console.log(`[connectionPool] new connection opened`)
  })

  // then you use connectionPool.getConnection(..)

相关问题