MySQL重置root用户密码的方法

作者:美云 发布日期:2011/10/25 23:24:00 浏览次数:41023 复制

    本教程适用于采用Win2003、WinXP操作系统的美云VPS云主机产品。

    当管理员忘记MySQL密码怎么办?屡次输入密码,仍然提示错误,网站无法正常运行,数据库也无法管理,管理员束手无策。

    网站程序或MySQL管理软件连接MySQL服务器时密码错误,会出现“1045 - Access denied for user 'root'@'localhost'(using password:YES)”的错误提示,如下图:

    当确认已经忘记MySQL密码,则可以通过以下方案重置root用户密码。双击打开C:\Program Files\MySQL\MySQL Server 5.1\my.ini文件,如下图:

    点击“记事本”软件顶部的“编辑”,再选择“查找”,在“查找内容”处输入[mysqld],并点击“查找下一个”,它会自动转到[mysqld]字段行。在下面增加一行skip-grant-tables并保存,如下图:

    点击左下角“开始”,“管理工具”,“服务”。鼠标右键点击服务列表中的“MySQL”服务,选择“重新启动”,如下图:

    这时的MySQL不需要密码即可登录数据库。点击左下角“开始”,“所有程序”,“MySQL”,“MySQL Server 5.1”,“MySQL Command Line Client”打开MySQL命令行控制台。窗口内出现“Enter Password:”提示,直接按回车键登录到MySQL控制台。

    输入use mysql;按回车键,出现Database changed提示。

    再输入update user set password=password('新密码') WHERE User='root';按回车键。例如:你需要设置的密码是mysql789,那么你需要输入的是update user set password=password('mysql789') WHERE User='root';如果担心输入错误,您可以直接复制这段内容,鼠标右键在点到控制台空白处,选择“粘贴”,再按回车运行,出现提示“Query OK, 2 rows affected (0.00 sec) Rows matched: 2  Changed: 2  Warnings: 0”。如下图。

    再输入flush privileges;按回车,出现“Query OK, 0 rows affected (0.00 sec)”提示。

    去掉my.ini中的[mysqld]字段下面一行的skip-grant-tables,再次重启MySQL服务。此时,用新的密码mysql789连接数据库,如下图:

    点击“确定”后,发现已经可以连上MySQL数据库。如下图:

    MySQL的root用户密码重置由此完成。谢谢观看。