使用 Windows 的 cmd 重置 MySQL 密码后,我无法在 NodeJs 中启动 MySQL 服务器

I can't start MySQL server in NodeJs after reset MySQL password using Windows's cmd

我使用本指南中的 cmd 命令重置了 MySQL 密码。

cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
mysqld
--defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini"
--init-file=C:\Users\<username>\resetMYSQL.txt

resetMYSQL 包含更改密码的命令

ALTER USER 'root'@'localhost' IDENTIFIED BY '<myNewPassword>';

现在,事实证明我必须保持 运行ning 上面的 mysqld 命令来启动我的服务器,否则我会得到这个错误。如果我再次 运行 命令,我可以完美地 运行 我的服务器,直到我终止它。

这是错误。这是 ECONNREFUSED。

我想我的密码已经重置了,因为除了命令行,我还在 Workbench 中 运行 ALTER USER 在我访问它之后,cmd 是 运行宁.

顺便说一句,在此之前,我可以使用 Node 和 Sequelize 启动我的服务器,而不必在其他地方启动服务器或预先设置任何东西

我不确定这里有什么问题,所以我不知道应该在 Google 上查找哪个关键字。我用谷歌搜索了错误代码,但这些情况似乎与我的无关。 如果你能向我解释发生了什么,我会很高兴。

您向我们展示的 nodejs 错误消息,一条带有回溯的 ECONNREFUSED 消息,表明当您的 mysql 数据库服务器程序试图连接到它时,它没有 运行ning。 Nodejs 通过 TCP/IP 联系 MySQL。 TCP/IP 响应 "I don't know any MySQL." 具体来说,它响应 "ECONNREFUSED on port 3306," 意思是 "nothing on this machine accepts connections on MySQL's port."

nodejs 不会为您启动 mysql 软件。它 连接到它 并且 使用它。。 MySQL 必须 运行 已经完成这项工作。

一般情况下,像mysql运行s这样的软件都是以操作系统服务的形式存在; 运行 一直在机器上等待请求的后台进程。

而且,通常情况下,您不会向 MySQL 提供初始化文件来执行诸如更改密码之类的操作,除非您必须这样做,以挽救损坏的东西。在您的情况下,您似乎忘记了 MySQL 密码,因此您需要使用初始化文件来拯救自己。重置密码后,停止使用该初始化文件。

解释如何使 MySQL 运行 作为您计算机上的服务超出了 Stack Overflow 答案的范围。但是 MySQL 的安装程序几乎在每个操作系统上都会自动将其设置为 运行 作为服务。否则一般没用。