NOyesNONO_ 2022-12-05 11:05 采纳率: 0%
浏览 38

nodejs访问远程数据库失败

nodejs访问远程数据库失败,用dbeaver是能连接到这个数据库的
代码块功能
const dns = require('dns');
let HOSTA = ''
//一开始用的resolve 后来改成了lookup
//dns.resolve('www.liuyue.fun', (err, records) => {
//    HOSTA = records[0]
dns.lookup('www.baidu.com', (err, address, family) => {
    console.log('records', address)
    HOSTA = address
    if (err) {
        console.error('--域名解析失败' + err)
    }
    console.log('HOSTA', HOSTA)
});

这里解析出的ip是 110.242.68.3(我以百度举例,实际上我是用家里电脑的域名解析出来的公网ip)
接下来创建服务器连接:

const mysql = require('mysql');
//  创建连接池
const pool = mysql.createPool({
    host: HOSTA,
    port: 3366, //家里数据库设置的端口是3366
    user: 'root', //用户名
    password: 'password', // 密码
    database: 'database_name', // 数据库名字
    connectionLimit: 10
})
运行结果及报错内容

结果报错了,我看报错里的地址是127.0.0.1,这还是本地的地址,但是我Host不是写了上边域名解析过的公网Ip了嘛?

Error: connect ECONNREFUSED 127.0.0.1:3366
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)
    --------------------
    at Protocol._enqueue (E:\h5\track-news\newsServer\node_modules\mysql\lib\protocol\Protocol.js:144:48)
    at Protocol.handshake (E:\h5\track-news\newsServer\node_modules\mysql\lib\protocol\Protocol.js:51:23)
    at PoolConnection.connect (E:\h5\track-news\newsServer\node_modules\mysql\lib\Connection.js:116:18)
    at Pool.getConnection (E:\h5\track-news\newsServer\node_modules\mysql\lib\Pool.js:48:16)
    at E:\h5\track-news\newsServer\utils\query.js:47:14
    at new Promise (<anonymous>)
    at module.exports (E:\h5\track-news\newsServer\utils\query.js:45:12)
    at E:\h5\track-news\newsServer\app.js:17:5
    at Layer.handle [as handle_request] (E:\h5\track-news\newsServer\node_modules\express\lib\router\layer.js:95:5)
    at next (E:\h5\track-news\newsServer\node_modules\express\lib\router\route.js:144:13) {
  errno: -4078,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 3366,
  fatal: true
}
[nodemon] app crashed - waiting for file changes before starting...

我(前端)是在另一个地方开发,想连接到家里的数据库。用了以上方法行不通,查了好久“nodejs 连接远程数据库”之类的,都查不到结果。请教大家!!!TAT!!!

  • 写回答

2条回答 默认 最新

  • curating 2022-12-05 11:21
    关注

    家里电脑mysql服务器配置地址为从光猫dhcp得到的ip,防火墙开放3306端口,方向入向。光猫路由设置nat 填写家电脑dhcp的 ip和端口。dhcp最好是指定mac固定,每次重启不变。

    评论

报告相同问题?

问题事件

  • 修改了问题 12月5日
  • 创建了问题 12月5日

悬赏问题

  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥20 看图片)删除这个自动化录屏脚本就一直报错找不到脚本文件,如何解决?(相关搜索:bat文件)
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件