我的mysql版本是8.0.26,windows版。
我的解决方法到第4步就不行了
1.先停止mysql服务net stop MySQL80,需要管理员权限打开CMD
2.mysqld --console --skip-grant-tables --shared-memory,使用该命令跳过授权登录启动mysql服务
3.直接无密码登录:mysql -uroot
4.修改密码,这一步使用这两种方式修改都不行了
update mysql.user set password=password("123456") where user="root";
alter user root@"%" identified with mysql_native_password by "123456";
如何才能修改密码成功?
可以试试使用 SET PASSWORD 命令来修改密码:
SET PASSWORD FOR root@localhost = PASSWORD('123456');
如果仍然无法修改密码,可能是因为 MySQL 服务器被设置为使用插件认证。在这种情况下,需要使用以下命令来修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
望采纳。
如果你忘记了MySQL 8.x的密码,可以尝试使用以下方法重置密码:
首先,停止MySQL服务:
sudo service mysql stop
然后,使用mysqld_safe命令启动MySQL服务,并添加--skip-grant-tables参数:
sudo mysqld_safe --skip-grant-tables &
这样,MySQL服务就会启动,并忽略权限检查。
接着,使用mysql客户端连接MySQL服务器,并执行下面的SQL语句重置密码:
use mysql;
update user set authentication_string=password('new_password') where user='root';
flush privileges;
在上面的语句中,new_password是你希望设置的新密码。
最后,停止MySQL服务,再使用正常的方式重新启动MySQL服务:
sudo service mysql stop
sudo service mysql start
首先,打开MySQL的配置文件my.ini,在[mysqld]节下添加skip-grant-tables选项:
[mysqld]
skip-grant-tables
然后,重启MySQL服务,并使用mysql客户端连接MySQL服务器,执行下面的SQL语句重置密码