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

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

 

1:问题如下: 

[root@izbp19kvzy03hpq35bq1jxz ~]# 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;

 

 

标记以便日后使用

posted on 2019-10-08 13:22  sharon-mxy  阅读(2299)  评论(0编辑  收藏  举报

导航