从IBM Cloud Functions连接到本地主机上的MySQL

时间:2019-04-24 08:42:40

标签: mysql node.js ibm-cloud ibm-cloud-functions

我想使用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:结果集

实际结果: 错误

2 个答案:

答案 0 :(得分:0)

这是一个纯粹的网络问题。在IBM Cloud中运行的Cloud功能没有指向您本地主机的网络路由。如果确实需要这种连接,则需要使用安全网关服务之类的方法公开本地主机的地址。

答案 1 :(得分: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"}; 
 }
}