linux mysql 8.0 重置密码或者刷新权限问题

时间:2021-09-05 02:38:28

关于mysql user 表的主键,百度说是user host 构成了主键

 

1:问题如下: 

[[email protected] ~]# mysql -u root
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
这一段是拒绝user=root,host=localhost 的用户访问,需要数据密码

解决方案:1):设置mysql为无密码启动 

                (修改MySQL的登录设置:vi /etc/my.cnf (部分Linux安装了vim,其命令则改为vim /etc/my.cnf)

在[mysqld]的段中加上一句:skip-grant-tables保存并退出vi。)

              2):重新启动mysqld,清空密码

                     重启mysql:service mysqld restart(这一步不能少,这是让my.cnf的修改生效)

                      进入mysql:mysql -u root

                      进入mysql后,切换数据库至mysql:use mysql;

                      清空密码:update user set authentication_string=‘‘ where user=‘root‘;
              3):退出mysql:exit; 并且 屏蔽skip-grant-tables:vi /etc/my.cnf,在skip-grant-tables前面添加#

               4):重启mysql.

至此 mysql8.0 可以不需要密码登录了。登录成功之后重新设置密码和刷新权限 就可以远程访问了

 

设置密码:

‘root‘@‘%‘   ‘root‘等于user表里的user,‘%‘ 等于user表里的host

 

ALTER USER ‘root‘@‘%‘ IDENTIFIED BY ‘新密码‘ PASSWORD EXPIRE NEVER;

ALTER USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘新密码‘;

让密码马上生效:FLUSH PRIVILEGES;

 

 

标记以便日后使用