今天在链接mysql的时候,发现总是提示链接到localhost失败,找了缘由,是前两天密码被非法修改了。如今不知道root登录密码,又想链接到数据库,网站找了下方法,结合本身的实践,总结以下:
一、在my.init文件中的[mysqld]下面加上skip-grant-tables,故名思议,就是跳过受权验证表,直接操做数据库
二、从新启动mysql (net start/stop mysql)
三、在MySQL Command Line Client用root以空密码登录。 或者在命令行中敲命令"mysql"(path设置)
四、修改密码
mysql> use mysql;
Database changed
mysql> UPDATE user SET Password = password ('root') WHERE User = 'root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 0
五、查看是否修改为功
mysql> select password from user where user='root';
+-------------------------------------------+
| password |
+-------------------------------------------+
| *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-------------------------------------------+
2 rows in set (0.00 sec)
六、刷新权限,mysql新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,不然会出现拒绝访问,还有一种方法,就是从新启动mysql服务器,来使新设置生效。并退出
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
七、在my.int中,把skip-grant-tables删掉,重启mysql
八、再次登录数据库,成功
C:\Windows\system32>mysql -uroot -p
Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.1.57-community MySQL Community Server (GPL)