忘记MySQL管理员口令怎么办?
如果忘记了MySQL帐号的登录密码,MySQL提供了两种非常规的方式重置密码。
第一种,启动MySQL服务时附加参数(--init-file),使用执行含有重置密码的脚本,达到修改帐户密码的目的。
第二种,启动MySQL时附加特殊的参数,使MySQL启动时跳过权限检测,然后登录MySQL修改账户的密码,最后以正常的方式启动MySQL。
实际使用过第二种方法,详细介绍一下第二种方法。
第一步,附加特殊参数启动MySQL,windows上命令如下:
mysqld --skip-grant-tables --skip-networking&
--skip-grant-tables
的作用是使MySQL绕过权限检测启动。以这种方式启动MySQL,任何人都可以无密码连接到MySQL。这是不允许的。--skip-networking
的作用就是使MySQL服务不监听来自TCP/IP的请求,即通过网络无法连接到该MySQL服务。
在linux上命令如下:
mysqld_safe --skip-grant-tables --skip-networking&
第二步,不使用帐号密码登录MySQL,修改账户的密码,命令如下:
update mysql.user set password=password('123456') where user='system';
第三步,关闭MySQL服务,然后以正常的方式启动MySQL,命令如下:
mysqladmin shutdown
mysql_safe