解决MySQL连接错误(SQLSTATE[HY000] [1045])的方法是什么?

在使用XAMPP学习PHP和MySQL的过程中出现了以下问题:
SQLSTATE[HY000] [1045] Access denied for user ‘root’@’localhost’ (using password: YES)

<环境>
操作系统:Windows11 Home(版本22H2)
MySQL:版本10.4.24
使用XAMPP和phpMyAdmin。

<处理方法>
1. 在 XAMPP 中启动 Apache 和 MySQL。
2. 在 XAMPP 中启动 Shell。
3. 在 Shell 中输入以下内容并按下 Enter 键。

mysql -u root

※这次,在这个时点上已经成功登录到了MySQL。
以下内容是显示的日志(部分展示)。

Welcome to the MariaDB monitor.  Commands end with ; or \g.

在Shell中输入以下内容,并按下Enter键。

use mysql

在Shell中输入以下内容,并按Enter键。(指定要使用MySQL数据库。)

flush privileges;

在Shell中输入以下内容,然后按下Enter键。

ALTER USER 'root'@'localhost' IDENTIFIED BY '任意のパスワード';

请输入您想要设置的密码作为”任意的密码”。

在XAMPP中重新启动MySQL。在Shell中输入以下内容并按Enter。

mysql -u root -p

如果要求输入密码,则输入在步骤⑥中设置的密码,并按下Enter键。

如果出现以下类似的日志,表示登录成功。

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.4.24-MariaDB mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

请在最后不要忘记以下更改…
– 在PDO中设置的密码
– phpMyAdmin的config.inc.php文件中的密码
文件位置为…C:\xampp\phpMyAdmin\config.inc.php

$cfg['Servers'][$i]['password'] = 'xxxxxxxx';
$cfg['Servers'][$i]['controlpass'] = 'xxxxxxxx';

参考网站:
https://blog.senseshare.jp/forget-rootpassword.html

造成错误的原因是我删除了ibdata1文件。
在错误发生之前,XAMPP的MySQL没有启动。
我使用备份文件夹中的backup文件夹恢复了MySQL的data文件夹,但不小心删除了data文件夹中的ibdata1文件。

就这篇文章,我只是个人做了一些笔记,如果有什么不对的地方,我很抱歉。

广告
将在 10 秒后关闭
bannerAds