📜  nodejs 与 localhost 的连接被拒绝 mysql errno -61 - Javascript (1)

📅  最后修改于: 2023-12-03 15:03:15.899000             🧑  作者: Mango

Node.js连接本地MySQL数据库报错:连接被拒绝,errno -61

当你尝试在Node.js中连接本地MySQL数据库时,有可能会遇到"连接被拒绝,errno -61"错误。这个错误通常发生在以下情况:

  • MySQL服务器没有启动。
  • MySQL服务器可能已经停止或崩溃。
  • MySQL服务器没有监听正确的端口(默认为3306)。

下面是一些可能会导致这个错误的原因以及如何解决这些问题:

原因一:MySQL服务器没有启动

如果你没有启动MySQL服务器,那么你尝试连接它时就会得到"连接拒绝"错误。如果你使用的是XAMPP、MAMP或WAMP等集成web服务器软件,那么应该先确保MySQL服务器已经启动。打开XAMPP或MAMP控制面板,找到MySQL,确保其状态是"运行中",如果不是,则点击"启动"按钮。

如果你使用的是独立的MySQL服务器,则可以尝试使用以下命令启动MySQL:

sudo /usr/local/mysql/support-files/mysql.server start

如果你的MySQL服务器是安装在Windows操作系统下的,则可以以管理员身份运行cmd控制台,并执行以下命令来启动MySQL:

net start mysql
原因二:MySQL服务器停止或崩溃

如果MySQL服务器已经启动,但你仍然得到"连接拒绝"错误,那么可能是因为MySQL服务器已经停止或崩溃了。你可以查看MySQL服务器的日志,找到错误的原因。

在Linux或MacOS上,可以通过以下命令查看MySQL日志:

tail -f /usr/local/mysql/data/mysql_error.log

在Windows上,可以在MySQL安装目录下找到mysql_error.log文件。

根据MySQL日志中的错误信息,你可以采取适当的措施来修复问题。例如,可能需要重新启动MySQL服务器,或者修复数据库中的数据块。

原因三:MySQL服务器没有监听正确的端口

默认情况下,MySQL服务器监听3306端口。如果该端口被其他应用程序占用,MySQL服务器可能无法启动,或者无法正确响应来自Node.js的连接请求。

你可以尝试使用以下命令来查找正在监听3306端口的进程:

sudo lsof -i :3306

如果你发现有其他进程正在监听该端口,可以尝试停止该进程或将MySQL服务器配置为监听其他端口。

在MySQL服务器中,可以通过修改my.cnf或my.ini文件来更改监听的端口。打开这个文件,找到"port"参数,并将其设置为其他未被占用的端口。例如:

port=3307

你还需要确保在Node.js代码中,使用的是与MySQL服务器监听端口相对应的端口号。

如果你已经尝试了上述方法,但仍然无法连接MySQL服务器,那么可能是因为防火墙或安全限制阻止了Node.js与MySQL之间的连接。这种情况下,你需要检查网络设置、防火墙规则以及MySQL用户权限等方面来解决问题。

以上就是本文介绍的全部内容,希望可以帮助到你!