-1

我想使用 IBM Cloud Functions 连接到不在 IBM Cloud 中的本地主机上的 MySQL 数据库。我无法做到这一点。

我在 IBM Cloud Function 中编写了 Node.js 代码。

var mysql = require('mysql');
//,cn="server=localhost;port=3306;database=chatbot;uid=root;password=oracle1#;";
    var connection = mysql.createConnection({
      server: 'localhost',
      user: 'root',
      port:3306,
     password: 'my_password'
    });
function main(params) {
 try {
     //var connection=mysql.createConnection(cn);
    connection.connect();
    //var s = JSON.stringify(params['user_input']);
   //var v = s.substring(1,11);
   //var check= conn.querySync("select count(distinct PHONE_NUMBER)  where PHONE_NUMBER='"+v+"'");
   var rows = connection.query(
   "select * from chatbot.customer_data");
   //console.log(rows);
   connection.end();
    return{message:"TRUE:"+rows[0]['PHONE']};
 }
 catch (e) {
   return { message:"error" };
  //return{message:"FALSE"}; 
 }
}

预期结果:TRUE:RESULTSET

实际结果:错误

4

2 回答 2

0

这是一个纯粹的网络问题。在 IBM Cloud 中运行的 Cloud 函数没有指向本地主机的网络路由。如果您确实想要这种连接,那么您需要使用安全网关服务之类的东西来公开本地主机的地址。

于 2019-04-26T10:55:53.427 回答
0
var sql = require('mysql');

    var connection = sql.createConnection({
      host: 'host name',
    user: 'user name',
    password: 'passwprd',
    database: 'database_name'
    });
function main(params) {
 try {

    connection.connect();

   var sql="select * from table _name";

   connection.query(sql,function(err,result){
       return{message:result};
   })
   //console.log(rows);
   connection.end();

 }
 catch (e) {
   return { message:"error" };
  //return{message:"FALSE"}; 
 }
}
于 2019-05-14T10:20:24.140 回答