首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点ssh到mysql -错误:侦听EADDRINUSE 127.0.0.1:3306

节点ssh到mysql -错误:侦听EADDRINUSE 127.0.0.1:3306
EN

Stack Overflow用户
提问于 2018-01-25 06:51:27
回答 1查看 791关注 0票数 0

我的API从不同服务器上的mysql数据库中提取数据(两者都由Digital Ocean托管)。我使用npm包packages ssh和mysql来访问数据库。它一直工作得很好,但现在(似乎是突然出现的)我得到了这个错误:

代码语言:javascript
复制
Error: listen EADDRINUSE 127.0.0.1:3306
    at Object.exports._errnoException (util.js:1020:11)
    at exports._exceptionWithHostPort (util.js:1043:20)
    at Server._listen2 (net.js:1262:14)
    at listen (net.js:1298:10)
    at net.js:1408:9
    at _combinedTickCallback (internal/process/next_tick.js:83:11)
    at process._tickDomainCallback (internal/process/next_tick.js:128:9)
    at Function.Module.runMain (module.js:606:11)
    at Object.<anonymous> (/home/project/project-server/node_modules/babel-cli/lib/_babel-node.js:154:22)
    at Module._compile (module.js:570:32)
  code: 'EADDRINUSE',
  errno: 'EADDRINUSE',
  syscall: 'listen',
  address: '127.0.0.1',
  port: 3306 

代码如下:

代码语言:javascript
复制
let sshConf = {
  username: username,
  password: password,
  host: hostIP,
  port: 22,
  dstHost: sqlConf.host,
  dstPort: sqlConf.port
};

let server = tunnel(sshConf, function(error){
  if(error){
    console.log(error);
  }
  /* would establish connection to database here */
});

server.on('error', function(err){
  console.error('Something bad happened:', err); // error is caught here
});

我在数据库服务器上查找可能正在使用该地址的进程。我试过杀死进程,但似乎没有什么不同。

代码语言:javascript
复制
$ lsof -i:3306
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  1962 mysql   41u  IPv4  21608      0t0  TCP *:mysql (LISTEN)
mysqld  1962 mysql   49u  IPv4  22456      0t0  TCP localhost:mysql->localhost:56380 (ESTABLISHED)
mysqld  1962 mysql   50u  IPv4  22458      0t0  TCP localhost:mysql->localhost:56382 (ESTABLISHED)
sshd    2068  root    8u  IPv4  22455      0t0  TCP localhost:56380->localhost:mysql (ESTABLISHED)
sshd    2068  root    9u  IPv4  22457      0t0  TCP localhost:56382->localhost:mysql (ESTABLISHED)

我还尝试重新启动数据库服务器。我仍然可以使用MySQLWorkbench远程访问数据库。我无论如何也想不出我做了什么导致了这一切。如果我更改了数据库服务器上的任何配置,那都不是故意的。

对于进一步的故障排除,我能做些什么?

EN

回答 1

Stack Overflow用户

发布于 2018-01-25 23:04:51

为了暂时修复这个问题,我将/etc/mysql/my.cnf中的端口更改为3307。我真的很想知道如何在不改变端口的情况下修复这个问题。

我将遵循@Brad的建议,通过Digital Ocean的专用网络连接api服务器和数据库服务器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48433012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档