mysql--慎用--skip-grant-tables命令--忘记用户名密码

慎用--skip-grant-tables命令--忘记用户名密码

该命令作用是跳过授权表,也就是说谁都能进入mysql看到所有数据表,输入任意字符账号密码都可以

当忘记账号密码时可以使用改命令修改密码,但是要随用随关,重启mysql,不然服务器上会有很大的风险。

介绍一个非常有用的mysql启动参数—— --skip-grant-tables。 顾名思义,就是在启动mysql时不启动grant-tables,授权表。有什么用呢?当然是忘记管理员密码后有用。

操作方法:

  1. 杀掉原来进行着的mysql:
rcmysqld stop

或者:

service mysqld stop

或者:

kill -TERM mysqld
  1. 以命令行参数启动mysql:
/usr/bin/mysqld_safe --skip-grant-tables &



或者:

a. 修改MySQL的登录设置:
 
vi /etc/my.cnf     ##在[mysqld]的段中加上一句:skip-grant-tables
 
例如: 
[mysqld] 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock 
skip-grant-tables 

b. 重新启动mysqld 

# /etc/init.d/mysqld restart 
Stopping MySQL: [ OK ] 
Starting MySQL: [ OK ] 

  1. 修改管理员密码:
use mysql;

update user set password=password('yournewpasswordhere') where user='root';

flush privileges;

exit;
  1. 杀死mysql,重启mysql

另外:有些时候my.ini并不是在默认位置,执行此命令时会报错,这时需要手动指定my.ini的文件位置:

mysql所在bin目录\mysqld --defaults-file="d:\java\MySQL\ProgramData\MySQL Server 5.6\my.ini" --skip-grant-tables

posted @ 2019-07-15 20:01  du-z  阅读(536)  评论(0编辑  收藏  举报