通过SSH连接Nodejs Numtel Mysql

时间:2016-02-29 17:23:59

标签: javascript mysql node.js meteor ssh

我在使用numtel meteor包通过网络发送和接收MySql信息时遇到问题(数据库位于服务器上)。目前,它能够使用他的软件包将信息从db推送到屏幕,但是在第一次加载后会出现问题。在第一次加载时,它能够从数据库中检索信息,并将其显示在屏幕上,但在此之后的任何事情,似乎触发器都被破坏了,但只是稍微有点。我能够向服务器发送信息,但似乎在动态检索上失败了。信息很好地发送到服务器,但信息不会被检索并显示回屏幕。它只会在我添加隧道代码时中断一次。它以前工作,并在同一台机器上使用数据库时获得更新。

messages = new MysqlSubscription('getMessages');

messages.addEventListener('update', function(diff, data) {
    console.log("Event listener");
});

if (Meteor.isClient) {
Template.messageHistory.helpers({
    messages: function () {
      return messages.reactive(); 
    }
  });
} 
if (Meteor.isServer) {

  var Tunnel = Meteor.npmRequire('tunnel-ssh');    
  var config = {
        host: "ourhost",
        username: "uname",
        password: "password",
        port:22,
        dstPort:3306,
        srcPort:3307,
      };

  Tunnel.tunnel(config, function(err) { (err == null) ? console.log(config) : console.log(err) })

  var liveDb = new LiveMysql({
                   host:"localhost",
                   port:3307,
                   database: "db",
                   user: "root",
                   password: "password"
               });

 Meteor.publish('getMessages', function() {
    return liveDb.select(
      'SELECT * FROM messages ORDER BY Timestamp', 
      [ { table: 'messages' } ]
    );
  });
}

1 个答案:

答案 0 :(得分:0)

我的问题出在我的mys.cn my.cnf文件中。我有服务器ID,它需要是server_id