nodejs 连接远程的 MySQL For Linux 时,总是返回 Connect: ETIMEOUT

东胜神洲 发布于 2018/01/11 10:29
阅读 1K+
收藏 0

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

这段时间想了解一下 NodeJS,于是就简单写了一个程序,后端连接一个内网,运行在 CentOS 7 上的 MySQL 5.7.20 的服务器,结果无论是使用 nodejs 组件 mysql, mysql2, 还是 Sequelize 都显示 Connected: ETIMEOUT 的错误。

针对这台 MySQL 服务器,我做了一些测试,使用不同的语言开发小程序来连接,结果如下:

无论是使用 Java 还是 Go 来写的小程序,都能够成功连接上 MySQL For Linux 机子,说明这个 MySQL 外面是能够访问(并没有被防火墙阻挡)。。我再测试一下用我的 nodejs 小程序连接一下另外一个远端的 MySQL For Windows,能够成功连接,这也说明我的 nodejs 小程序并没有什么错误(至少在连接 MySQL 上)。

问题就来了:  请问 nodejs 连接 MySQL For Linux,是需要 MySQL 有特殊的配置要求吗?还是需要 NodeJS 程序有特别的连接配置?

在这预先感谢 付出时间来看和想的 OSCer 们!

附 nodejs 的一个测试程序:

​

var Sequelize = require('sequelize');

const sequelize = new Sequelize('app_demo', 'root', 'Password100', {
  host: '192.168.10.100',
  dialect: 'mysql',

  pool: {
    max: 5,
    min: 0,
    idle: 10000
  }
});

sequelize
  .authenticate()
  .then(() => {
    console.log('Connection has been established successfully.');

    sequelize.close();
  })
  .catch(err => {
    console.error('Unable to connect to the database:', err);
  });

​

 

加载中
0
任真
任真
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
东胜神洲
东胜神洲

引用来自“任真”的评论

试试用mysqljs能连上吗?

https://github.com/mysqljs/mysql

首先感谢你的回复和建议!!。

在你的提议下,我再次审视了使用 mysql.js 的代码,发现使用 mysql 是没问题(包括你提供的那个版本),而使用 mysql2 和 Sequelize 出错。。

只是不知能否让 Sequelize 用这个没问题的 mysql 作底层。。

 

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部