关闭mysql登录验证

打开命令行界面 然后输入打开 my.cnf 配置文件的命令

1
vim /etc/my.cnf

在 [mysqld] 的段中加上一句:skip-grant-tables

my.cnf
1
2
3
4
[mysqld] 
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables

然后保存重启mysql

1
2
// mariadb 如果是mysql,则把mariadb改为mysql
systemctl restart mariadb

无密码登录

然后登录

1
2
mysql -uroot -p
// 然后直接回车,要求输入密码的时候也直接回车

修改密码

登录之后选择mysql这个数据库然后修改用户密码

1
2
use mysql;  --选择要操作的数据库
UPDATE user SET password = password('vbox_12306') WHERE User = 'root'; -- vbox_12306 为密码

回车之后显示下面的表示成功

1
2
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

如果提示下面的错误

1
The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

刷新权限

则运行一下刷新权限的命令

1
flush privileges;

然后在执行上面的 update 命令,执行成功之后再次执行 flush 刷新权限命令

开启密码登录

此时退出mysql 再次打开 my.cnf 配置文件 把已开始加入的 skip-grant-tables 删除 :wq 保存 ,然后重启mysql

1
systemctl restart mariadb

然后安正常步骤登录mysql。