我正在Windows上创建后端节点服务器。我使用的是MySQL8.0,从一开始,我的数据库根目录已设置了密码。在工作中,MySQL Workbench将我踢出了数据库连接,此后我一直无法通过Workbench或命令行进行连接。我不断收到以下错误:
Your connection attempt failed for user 'root' from your host to server at
127.0.0.1:3306:
Access denied for user 'root'@'localhost' (using password: YES)
我尝试过的事情:
故意输入错误/不同的密码
结果:在开始摆弄所有内容之前,我遇到了与无效凭据有关的错误(即与拒绝访问不同)。完成所有以下操作后,如果服务器正在运行,则出现相同的“访问被拒绝”错误。如果服务器未运行,则显示“无法连接到'localhost'上的服务器”错误。
mysql -u root -p -h 127.0.0.1 -P 3306
结果:要求输入密码“拒绝访问”。
mysqld.exe -u root --skip-grant-tables
结果:出现多个[服务器]“无法创建测试文件”错误,然后出现[服务器]“正在中止”错误。无论服务器是否在运行,这都是相同的。
mysql_secure_installation
结果:我被要求输入密码。如果服务器正在运行,则会出现“访问被拒绝”错误。如果关闭,则会出现“无法连接到'localhost'上的服务器”错误。
试图将mysql作为服务重新安装
结果:我现在有两个mysql服务:MySQL(新)和MySQL80(原始)。无论运行哪个问题,问题仍然存在。
mysqld --skip-grant-tables
mysql -u root -p
结果:现在没有错误?除了我还要求输入密码。相同的“访问被拒绝”错误。
按照说明重设我的密码,该密码在Mysql网站上列出:https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
结果:我终于可以连接了!除了我打开Workbench来查找所有丢失的数据库。我意识到我正在运行MySQL服务,而不是MySQL80。我切换到那个。 “访问被拒绝”错误又回来了。
sc remove MySQL
有关重置密码的重复说明
结果:现在只有MySQL80。当使用mysql-init.txt运行服务器时,我可以登录Workbench,但我的所有数据库也都丢失了。我关闭了,手动重新启动服务。返回“访问被拒绝”错误。
尽管如此,我的应用程序的节点服务器在运行时连接到MySQL80时没有任何问题。它使用的是非root用户登录。