MySql_忘记了root密码怎么办

《MySql_忘记了root密码怎么办》

在忘记root密码的时候,可以按以下步骤处理(以windows为例)。

_1) 关闭正在运行的MySQL服务。

_2) 打开DOS窗口,转到mysql\bin目录。

_3) 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。

_4) 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。

_5) 输入mysql回车,如果成功,将出现MySQL提示符 `>` 。

_6) 连接权限数据库: `use mysql;` 。

_7) 改密码: `update user set password=password('123456') where user='root';`(别忘了最后加分号) 。

_8) 刷新权限(必须步骤): `flush privileges;` 。

_9) 退出 `quit` 。

_10) 注销系统,再进入,使用用户名root和刚才设置的新密码123456登录。

[补充] 修改密码:

UPDATE mysql.user SET password=PASSWORD('123456') WHERE user='root';

UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='root';

[补充] 刷新权限: `FLUSH PRIVILEGES;` 。

[补充] 使用命令行启动MySql服务:

net start mysql

[补充] 使用命令行连接MySql(若更改了端口号(即不是默认的3306),则命令行要加上端口号的选项):

mysql -u root -p

mysql -P 3309 -u root -p

mysql -h 127.0.0.1 -P 3309 -u root -p

[补充] 退出: `quit` 。

[补充] 启动服务的提示信息: `本地计算机上的MySQL服务启动后停止。` 。

分析:查询错误日志文件(如SC-202505131749.err)看到了信息 `[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist` 。

参考解决办法:执行命令 `mysqld --initialize-insecure` 。

[补充] 连接服务的提示信息: `ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)` 。

分析:是不是 \"MySql服务配置文件配置的端口号不是默认的3306"/ ?若不是,则使用的命令行中要加上端口号的选项。