参考网址:
具体办法:
Follow the steps given below:
- Stop your MySQL server completely. This can be done by accessing the Services window inside Windows XP and Windows Server 2003, where you can stop the MySQL service.
- Open your MS-DOS command prompt using "cmd" inside the Run window. Inside it navigate to your MySQL bin folder, such as C:\MySQL\bin using the cd command.
- Execute the following command in the command prompt: mysqld.exe -u root --skip-grant-tables
- Leave the current MS-DOS command prompt as it is, and open a new MS-DOS command prompt window.
- Navigate to your MySQL bin folder, such as C:\MySQL\bin using the cd command.
- Enter mysql and press enter.
- You should now have the MySQL command prompt working. Type use mysql; so that we switch to the "mysql" database.
- Execute the following command to update the password:
UPDATE user SET Password = PASSWORD('NEW_PASSWORD') WHERE User = 'root';
However, you can now run any SQL command that you wish.
After you are finished close the first command prompt and type
exit;
in the second command prompt windows to disconnect successfully. You can now start the MySQL service.
不过按照上面这样解决在我的WIN7电脑上执行
UPDATE user SET Password = PASSWORD('NEW_PASSWORD') WHERE User = 'root'; 命令时出现了另一个问题:
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
参考网址:
晚上被这个问题折腾了好久,最后发现window下这个版本的mysql密码列是authentication_string,所以正确的写法是:
mysql>update mysql.user set authentication_string=password('123456') where user='root' and Host ='localhost';
问题解决