解决MySQL报错:Access denied for user ‘root’@‘localhost’(using password: YES)

序言

在windows以及linux上我都有遇到过这个问题,所以打算记录下最后解决的方法

Windows 10

  1. 修改配置文件
    找到MySQL安装目录下配置文件my.ini(在我的win10环境下,其路径为C:\ProgramData\MySQL\MySQL Server 5.7),用文本编辑器打开在最后一行换行输入"skip-grant-tables",保存并退出。
  2. 重启MySQL服务
    右键单击开始图标,选择计算机管理>服务和应用程序>服务,找到MySQL服务重启。
  3. 命令行进入MySQL的bin目录:
    cmd进入或者找到安装路径下进入bin目录按住shift右键单击,选择在此处打开命令行窗口,输入"mysql -u root -p"(注意空格)进入数据库。
  4. 输入"use mysql",使用数据库
  5. 执行 "update user set password=PASSWORD(''你的密码) where user='root' "命令重置密码:
  6. 再次重启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';
  1. 重启MySQL
service mysqld restart

5.进入MySQL安装目录使用新密码重新登录即可

你可能感兴趣的:(解决MySQL报错:Access denied for user ‘root’@‘localhost’(using password: YES))