MySQL忘记管理员密码的情况下增加用户

阅读更多

  最近,在网上下载了一套PHP的协同办公系统,试用了感觉还有些地方可以好好研究研究,首先从数据库入手。但是,马上就碰到了一个问题,我不知道数据库MySQL管理员用户ROOT的密码,因为这套协同办公系统把MySQL的管理员密码修改了,我没有办法登录。

 

  拉出小狗,网上一顿狂搜,找到了很多方法,有很多是在Linux系统下的,我用的是WindowsXP,有点点差异,现在总结如下:

 

  1、如果MySQL服务还在运行的话,首先在服务管理器中停止MySQL服务;

 

  2、以安全模式启动MySQL服务,这一步是关键,因为以安全模式启动MySQL的话就会绕过用户检查。在命令行窗口下切换到MySQL安装目录中的bin目录下,输入如下命令:

 

  mysqld-nt --defaults-file="..." --skip-grant-tables;

 

  上面--defaults-file选项是指定MySQL的配置文件,一般可以省略,但有时候需要指定MySQL的配置文件才能够启动。

 

  3、MySQL启动之后千万不要关掉这个命令窗口,再另外打开一个新的命令窗口,使用MySQL客户端程序连接MySQL服务器;

 

  4、然后输入一些命令:

 

  use mysql;

 

  select host,user,password from user where user='root'; --记住这里输出的password的值,在下面会用到

 

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

 

  flush privileges;

 

  5、关掉两个命令行窗口,然后在任务管理器中结束掉mysql-nt.exe进程,在服务管理器中重新启动MySQL服务;

 

  6、打开一个命令行窗口,使用MySQL客户端连接:mysql -u root -p 123456;

 

  7、连接上后输入如下命令:

 

  use mysql;

 

  grant all privileges on *.* to 用户名@主机名 identified by '密码';

 

  update user set password='上面保存下来的password值' where user='root';

 

  flush privileges;

 

  说明:

  (1)上面用到的“用户名”、“主机名”、“密码”是你想新增加的用户配置信息;

  (2)第三条命令中把root用户的密码又修改回去,这里主要是因为这个协同办公系统加密了,不办法修改源代码中的数据库配置信息,如果我把root用户的密码修改了,这套系统都连接不上去了,所以又重新把该密码修改回去。

 

  8、再重新启动一次MySQL服务就完成任务。

你可能感兴趣的:(MySQL,配置管理,Linux,PHP)