我想使用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:结果集
实际结果: 错误
答案 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"};
}
}