0

我使用本指南中的 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>';

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

这是错误。它是 ECONNREFUSED。 节点错误

我认为我的密码已经重置,因为除了命令行之外,我还在 cmd 运行时访问它后在 Workbench 中运行 ALTER USER。

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

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

4

1 回答 1

1

您向我们展示的 nodejs 错误消息,带有回溯的 ECONNREFUSED 消息,显示您的 mysql 数据库服务器程序在您的 nodejs 程序尝试连接到它时没有运行。Nodejs 通过 TCP/IP 访问 MySQL。TCP/IP 响应“我不知道任何 MySQL”。具体来说,它响应“端口 3306 上的 ECONNREFUSED”,意思是“这台机器上没有任何东西接受 MySQL 端口上的连接”。

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

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

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

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

于 2020-05-29T15:57:41.100 回答