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

发布于 2021-12-08 00:12:17 字数 1201 浏览 927 评论 1

这段时间想了解一下 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);
  });

​

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

归属感 2021-12-09 05:01:41

引用来自“任真”的评论

试试用mysqljs能连上吗?

https://github.com/mysqljs/mysql
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文