解决 MySQL 使用 root 用户无法密码登录

1、问题描述

全新安装的 MySQL,使用 phpMyAdmin 无法登录,报:

Text
1
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

2、解决方法

2.1、配置免密登录

在配置文件my.cnf中添加:

Text
1
skip-grant-tables

然后重启 MySQL:

Bash
1
/etc/init.d/mysqld restart

2.2、删除空用户

执行:

Bash
1
mysql  -uroot -p<password>

<password>改为 root 密码,登录到 MySQL 命令行,执行:

sql
1
2
3
USE  mysql;
Delete FROM user Where User=''  and Host='localhost';
FLUSH  PRIVILEGES;

2.3、设置权限

如果是 MySQL 5.6及以下:

sql
1
2
UPDATE  mysql.user set password=password('root <password>')  WHERE user='root' AND host='localhost';
FLUSH  PRIVILEGES;

<password>改为 root 密码。

如果是 MySQL 5.7及以上:

sql
1
2
3
update user set authentication_string='' where user='root';
ALTER user 'root'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;

<password>改为 root 密码。

2.4、关闭免密登录

my.cnf中删除

Text
1
skip-grant-tables

重启数据库:

Bash
1
/etc/init.d/mysqld restart

解决 MySQL 使用 root 用户无法密码登录

https://blog.tsinbei.com/tw/archives/1094/

文章作者
Hsukqi Lee
发布于

2023-01-23

修改于

2023-05-18

许可协议

CC BY-NC-ND 4.0

评论

昵称
邮箱
网址
暂无