[redhat 6.7+Mysql5.7] root权限丢失、降权恢复菜鸟教程
产生问题
作为一个菜鸟,在修改root的访问权限时,为了不让所有人访问,需要把root的远程授权取消。即把root@’%’,修改为root@‘localhost’,或者单个IP。
但在修改过程中,不小心造成root@‘*’了,导致远程与本地都无法访问,但用户名和密码都是没有修改的,依然知道。
解决办法
(1)停止mysql的运行
//停止mysql
[root@localhost ]# service mysql stop;
Shutting down MySQL.... [ OK ]
(2)修改配置my.cnf文件
//查找mysql的配置文件并编辑
[root@localhost ]# find / -name my.cnf
/usr/local/mysql/my.cnf
[root@localhost ]# vi /usr/local/mysql/my.cnf
。。。
在mysql安装目录中,用记事本打开my.ini 在最后一行加入如下代码:
skip-grant-tables
保存,启动mysql
[root@localhost ]# service mysql start;
Starting MySQL. [ OK ]
(3)重新授权
[root@localhost ]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 115
Server version: 5.7.24 MySQL Community Server (GPL)
mysql> use mysql;
mysql> update user set Update_priv ='Y' where user ='root';
mysql> update user set Grant_priv ='Y' where user ='root';
mysql> flush privileges;
mysql> grant all privileges on *.* to root@'localhost' identified by '**你的密码'** with grant option;
mysql> flush privileges;
在执行过程序中没有出现错误,就基本搞定。
(4)关mysql,并改回原来的配置
//停止mysql
[root@localhost ]# service mysql stop;
Shutting down MySQL.... [ OK ]
[root@localhost ]# vi /usr/local/mysql/my.cnf
。。。
#skip-grant-tables
即把skip-grant-tables加上#,注释掉后保存文件后启动mysql,即时就可以访问了。
(5)注意。
修改授权的时候,最好使用Mysql工具。
双击root@%,把%修改成localhost即可