MySQL管理员口令丢失

MySQL官方给出了两种非常规方式重置系统管理账户两种方法:

1.启动MySQL服务时附加参数(--init-file),使其执行含有密码重置的脚本,达到修改账户密码的目的

2.启动MySQL服务时通过附加特殊的参数,使其跳过权限验证,而后登录数据库中重置密码后,再按照正常的方式重启MySQL服务

 

找到mysqld主进程后杀掉该进程

[mysql@mysql1 ~]$ kill `cat /data/mysqldata/3306/mysql.pid`

重启mysqld服务,附加--skip-grant-tables选项,表示当有用户连接时跳过检查授权表,直接授予所有登录用户最大权限,相当于所有登录的用户都是系统管理员。附加--skip-networking选项,表示该MySQL服务不会监听来自TCP/IP的连接,相当于禁用了网络上其他主机发出的登录请求,只允许MySQL服务本地创建连接

[mysql@mysql1 ~]$ mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf --skip-grant-tables --skip-networking &

修改系统管理员账户的密码

(root@localhost) [(none)]> update mysql.user set password=password('123456') where user='system';

关闭mysql

[mysql@mysql1 ~]$ mysqladmin shutdown

重启mysql服务

[mysql@mysql1 ~]$ mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf &

 

猜你喜欢

转载自allenhu0320.iteye.com/blog/2185900