发表于:中国PHP联盟 www.phpx.com 作者/来源:sonymusic/ 人气:1457 如何恢复MYSQL的ROOT口令 
如果你忘记了你的MYSQL的root口令的话,你可以通过下面的过程恢复。
  1. 向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。
      kill `cat /mysql-data-directory/hostname.pid`
     你必须是UNIX的root用户或者是你所运行的SERVER上的同等用户,才能执行这个操作。
  2. 使用`--skip-grant-tables' 参数来启动 mysqld。
  3. 使用`mysql -h hostname mysql'命令登录到mysqld server ,用grant命令改变口令。你也可以这样做:`mysqladmin -h hostname -u user password 'new password''。
(其实也可以用use mysql; update user set password =password('yourpass') where user='root' 来做到。)
  4. 载入权限表: `mysqladmin -h hostname flush-privileges' ,或者使用 SQL 命令`FLUSH PRIVILEGES'。(当然,在这里,你也可以重启mysqld。)

解决方案 »

  1.   

    我自己的办法,仅适合Windows NT内核:首先,停止Mysql服务,这是必须的shell>mysqld-nt --help >mysqld-nt-help.txt
    将帮助保存下来,你看看skip部分
    用此命令试试:
    C:\>mysqld-nt --skip-grant
    不要关闭此窗口,然后打开新的CMD窗口
    C:\>mysql
    mysql>use mysql
    mysql>update user set password=password('newpassword') where user='root';
    mysql>\q
    C:\>
    关闭mysqld-nt --skip-grant这个CMD窗口,Mysql服务并没停止,接下来杀掉进程中的mysqld-nt进程后,重启mysql即可。