使用 Windows 的 cmd 重置 MySQL 密码后,我无法在 NodeJs 中启动 MySQL 服务器
Posted
技术标签:
【中文标题】使用 Windows 的 cmd 重置 MySQL 密码后,我无法在 NodeJs 中启动 MySQL 服务器【英文标题】:I can't start MySQL server in NodeJs after reset MySQL password using Windows's cmd 【发布时间】:2020-09-17 05:18:04 【问题描述】:我使用本指南中的 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 上查找哪个关键字。我用谷歌搜索了错误代码,但这些情况似乎与我无关。 如果你能解释一下发生了什么,我会很高兴。
【问题讨论】:
有没有理由不将 MySQL 配置为作为服务运行? 这个Should give you a clue how it should be done 您能进一步解释一下吗?我还是迷路了。我没有使用Wamp。我认为我的密码已经重置,因为除了命令行之外,在 cmd 运行时我可以访问它之后,我还在 Workbench 中运行 ALTER USER。顺便说一句,在此之前我可以使用 Node 和 Sequelize 启动我的服务器,而不必在其他地方启动服务器或预先设置任何东西。谢谢 【参考方案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 安装程序都将其设置为自动作为服务运行。否则一般没用。
【讨论】:
我从您的评论中学到了很多。我使用安装程序安装 MySQL,所以我想我应该重新启动我的电脑以通过 Windows 服务启动 MySQL。现在,它就像以前一样工作。非常感谢!非常感谢您的帮助。以上是关于使用 Windows 的 cmd 重置 MySQL 密码后,我无法在 NodeJs 中启动 MySQL 服务器的主要内容,如果未能解决你的问题,请参考以下文章
Windows下重置MySQL密码(最开始是因为Access denied for user 'root'@'localhost'这个原因,无法登陆 'root