nodejs 连接远程的 MySQL For Linux 时,总是返回 Connect: ETIMEOUT
这段时间想了解一下 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
引用来自“任真”的评论
试试用mysqljs能连上吗?