方法一: 绕过权限表(通用方法)
停止mysql服务 ,systemctl stop mysqld
修改配置文件/etc/my.cnf
[mysqld]
skip-grant-tables
保存,启动服务 systemctl start mysqld
[root@localhost ~]# mysql
更改密码
mysql> flush privileges;
mysql> alter user 'root'@'localhost' identified by 'ABCDabcd123!';
修改完毕删除配置文件添加的内容,重启服务新密码生效。
停止mysql服务 ,systemctl stop mysqld
修改配置文件/etc/my.cnf
[mysqld]
skip-grant-tables
保存,启动服务 systemctl start mysqld
[root@localhost ~]# mysql
更改密码
mysql> flush privileges;
mysql> alter user 'root'@'localhost' identified by 'ABCDabcd123!';
修改完毕删除配置文件添加的内容,重启服务新密码生效。
[root@localhost ~]# mysql -uroot -pABCDabcd123!
方法二: 启动时使用 --init-file=密码文件
创建密码文件: (启动mysql的用户有读权限)
cd /usr/local/mysql
[root@localhost mysql]# vim mysql-init
ALTER USER 'root'@'localhost' IDENTIFIED BY 'ABCDabc123!';
[root@localhost mysql]# chown mysql.mysql mysql-init
[root@localhost mysql]# chmod 400 mysql-init
启动:
mysqld --user=mysql --init-file=/usr/local/mysql/mysql-init
启动成功后即使用密码文件里面新密码替换旧密码。
mysql8.0 如何使用简单密码:
查询密码设置策略:
mysql> show variables like '%pass%';
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=4;