【问题标题】:MySQL Connection on Node.JSNode.JS 上的 MySQL 连接
【发布时间】:2016-10-26 09:31:00
【问题描述】:

当我尝试连接到 NodeJS 服务器上的 OVH 托管的 MySQL 数据库时遇到问题。这是代码:

var mysql      = require('mysql');

var connection = mysql.createConnection({
  host     : 'my_ip',
  port     : '3306',
  user     : 'my_user',
  password : 'my_pass',
  connectTimeout : 10000
});

connection.connect(function(err) {
  if (err) {
    console.error('error connecting: ' + err.stack);
    return;
  }
  console.log('connected');
});

但我明白了:

error connecting: Error: connect ETIMEDOUT

每次,无论我做什么,比如更改超时、删除端口或其他任何事情。任何的想法 ?我在 ArchLinux x86_64 上运行它

【问题讨论】:

  • 数据库在什么样的托管服务上?我问是因为通常他们不允许远程连接到数据库。节点服务器是在同一台机器上还是在不同的机器上?
  • 托管在OVH上,通过PHP访问没有问题

标签: mysql node.js ovh


【解决方案1】:

我终于找到了答案:OVH 不允许客户在他们的服务之外使用他们的 MySQL 数据库,这意味着如果你想使用 MySQL OVH 数据库运行代码,你必须将代码运行到 OVH 服务器中。

【讨论】:

    【解决方案2】:

    这看起来像是一个超时错误。 请尝试将端口号从引号中取出。希望这能解决问题!

     var connection = mysql.createConnection({
         host     : 'my_ip',
         port     : 3306,
         user     : 'my_user',
         password : 'my_pass',
         connectTimeout : 10000
    });
    

    【讨论】:

    • 不幸的是,它没有改变任何东西
    • 好的,您可以使用 MySQLWorkbench 中的相同凭据连接到远程数据库吗?
    • 不行,那IP可能有问题...谢谢帮助!
    • 是的,可能有很多问题,数据库是允许远程连接还是被锁定?凭据是否正确?
    猜你喜欢
    • 2013-09-01
    • 2014-04-05
    • 2018-05-28
    • 2014-06-13
    • 2018-07-15
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多