Linux下重置MySQL8.0.1 root密码

第一步:修改配置文件免密登陆

vim /etc/my.cnf

Linux下重置MySQL8.0.1 root密码_第1张图片
第二步:在[mysqld]后任意位置处插入 skip-grant-tables

Linux下重置MySQL8.0.1 root密码_第2张图片
第三步:重启mysql服务:

service mysqld restart

第四步:免密码登陆到mysql上;直接在命令行上输入:

mysql
//或者
mysql -u root -p
//password直接回车

第五步:给root用户重置密码
首先查看当前root用户相关信息,在mysql数据库的user表中;

desc user;

host:允许用户登陆的ip‘位置’%表示可以远程;
user:当前数据库的用户名;
authentication_string:用户密码;在mysql 5.7.9以后废弃了password字段和password()函数;
plugin:密码加密方式;
Linux下重置MySQL8.0.1 root密码_第3张图片
第六步:如果当前root用户authentication_string字段下有内容,先将其设置为空;
use mysql;
update user set authentication_string =’’ where user =‘root’;
第七步:退出mysql,删除/etc/my.cnf文件中添加进去的skip-grant-tables 重启mysql服务;
第八步:使用root用户进行登陆,因为上面设置了authentication_string为空,所以可以免密码登陆;
mysql -u root -p
paaword:直接回车;
第九步:

mysql> ALTER table user ‘root’@‘localhost’ IDENTIFIED BY
‘hzsecTEST2@’;
ERROR 1064 (42000): You have an error in your SQL
syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘root’@‘localhost’ IDENTIFIED BY ‘hzsecTEST2@’’ at line 1
mysql> alter user’root’@’%’ IDENTIFIED BY ‘MyNewPass@123’;
【mysql8.0以上密码策略限制必须要大小写加数字特殊符号】
Query OK, 0 rows affected (0.05 sec)

修改成功;

你可能感兴趣的:(数据库)