序言
在windows以及linux上我都有遇到过这个问题,所以打算记录下最后解决的方法
Windows 10
- 修改配置文件
找到MySQL安装目录下配置文件my.ini(在我的win10环境下,其路径为C:\ProgramData\MySQL\MySQL Server 5.7),用文本编辑器打开在最后一行换行输入"skip-grant-tables",保存并退出。 - 重启MySQL服务
右键单击开始图标,选择计算机管理>服务和应用程序>服务,找到MySQL服务重启。 - 命令行进入MySQL的bin目录:
cmd进入或者找到安装路径下进入bin目录按住shift右键单击,选择在此处打开命令行窗口,输入"mysql -u root -p"(注意空格)进入数据库。 - 输入"use mysql",使用数据库
- 执行 "update user set password=PASSWORD(''你的密码) where user='root' "命令重置密码:
- 再次重启MySQL服务即可登陆成功
Linux(CentOS 6.8)
1.停用数据库
service mysql stop
2.进入MySQL的bin目录安全登录
安装目录可以使用"whereis mysql"命令找到,然后跳转到其路径下的bin目录,输入以下命令:
./mysqld_safe --skip-grant-tables
注意:这时候可能会报
mysqld_safe Logging to '/var/lib/mysql/iZ23dq2wm0jZ.err'.
mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
然后卡住,开启一个新连接继续操作
3.无密码登录,修改密码
mysql -u root
use mysql
update user set password=PASSWORD("你的密码") where User = 'root';
- 重启MySQL
service mysqld restart
5.进入MySQL安装目录使用新密码重新登录即可