mysql update完root用户密码后,再登陆报错”Access denied for user 'root'@'localhost' (using password: YES)“的解决方法

本文详细介绍了在更改MySQL root用户密码后遇到登录错误时的解决步骤,包括更新用户权限、刷新权限、删除默认空用户名用户及刷新权限等关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.mysql 更改root用户密码后,再重新登陆系统时会产生如下的错误:
Access denied for user 'root'@'localhost' (using password: YES),

这是由于更改用户密码后没有给予权限造成的。
同时,在修改密码后用新密码登陆时,提示如下的错误:
Access denied for user ''@'localhost' (using password: YES),说明存在用户名为空的默认用户,所以可以删除掉它,

正确的更改密码操作为:
mysql>update user set password='dev' where user='root';
mysql>flush privileges;
mysql>grant all privileges on *.* to root@localhost identified by 'dev';
mysql>flush privileges;
mysql>delete from user where user='';
mysql>flush privileges;
执行mysql -u root -p 报错Access denied for user 'root'@'localhost' (using password: YES)通常是由于密码错误或者权限问题导致的。以下是两种可能的解决方法: 1.检查密码是否正确 首先,您需要确保您输入的密码是正确的。如果您不确定密码是否正确,可以尝试重置密码。以下是重置密码的步骤: 1)停止MySQL服务 sudo systemctl stop mysql 2)使用以下命令跳过授权表并重置root用户密码 sudo mysqld_safe --skip-grant-tables --skip-networking & 3)使用以下命令登录MySQL mysql -u root 4)在MySQL中更新root用户密码 UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root' AND Host='localhost'; 5)刷新MySQL的授权表 FLUSH PRIVILEGES; 6)退出MySQL并停止mysqld_safe进程 quit; sudo pkill mysqld_safe 7)启动MySQL服务 sudo systemctl start mysql 2.检查权限是否正确 如果密码正确,但仍然无法登录,则可能是权限问题。您可以检查MySQL用户的权限是否正确。以下是检查权限的步骤: 1)使用以下命令登录MySQL mysql -u root -p 2)输入密码后,使用以下命令查看用户的权限 SHOW GRANTS FOR 'root'@'localhost'; 3)如果用户的权限不正确,则可以使用以下命令更权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION; 请注意,这将授予root用户在所有数据库和所有表上的所有权限。如果您只需要在特定数据库或表上授予权限,请相应地更命令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值