当你尝试使用 MySQL 数据库时,可能会遇到以下错误消息:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
如何解决MySQL ERROR 1045 (28000): Access denied for user ‘root'@'localhost'?
1、首先停止你的服务器
service mysql stop
2、制作MySQL服务目录。
mkdir /var/run/mysqld
3、授予 MySQL 使用创建的目录的权限。
chown mysql: /var/run/mysqld
4、启动MySQL,无需权限和网络检查。
mysqld_safe --skip-grant-tables --skip-networking &
5、不用任何密码登录到你的服务器。
mysql -u root mysql
或:
mysql -u root mysql
在 mysql 客户端中,告诉服务器重新加载授权表,以便帐户管理语句起作用:
mysql> FLUSH PRIVILEGES;
然后修改'root'@'localhost'
账号密码。将密码替换为你要使用的密码。要更改具有不同主机名部分的根帐户的密码,请修改使用该主机名的说明。
MySQL 5.7.6 及更高版本:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
MySQL 5.7.5 及更早版本:
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
或者直接在用户表上:
UPDATE mysql.user SET password=PASSWORD('mynewpassword') WHERE user='root';
XAMPP 专用
停止 MySQL 服务,打开命令窗口,切换到 XAMPP MySQL 目录:
> cd \xampp\mysql\bin\
在没有安全保护的情况下运行服务(注意你运行的是 mysqld,而不是 mysql):
> mysqld.exe --skip-grant-tables
MySQL 服务将在此窗口中运行,因此打开另一个命令窗口并切换到 XAMPP MySQL 目录:
> cd \xampp\mysql\bin\
运行 MySQL 客户端:
> mysql
更新密码:
mysql> UPDATE mysql.user SET password=PASSWORD('mynewpassword') WHERE user='root';
退出 MySQL:
mysql> \q
使用任务管理器取消仍在运行的mysqld.exe,重启MySQL服务。
希望陈沩亮博客( https://www.chenweiliang.com/ ) 分享的《MySQL ERROR 1045 (28000): Access denied for user ‘root’@’localhost’如何解决》,对您有帮助。
欢迎分享本文链接:https://www.chenweiliang.com/cwl-30369.html
喜欢就分享和按赞!您的分享和按赞,是我们持续的动力!