win10使用Navicat连接mysql8.0时,出现报错【1045 - Access denied for user 'root'@'localhost'(using password: YES)】
或者,命令行连接mysql时,报错【ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)】
解决方法:
1、先找到mysql安装目录下的my-default.ini或者my.ini文件,如 E:\Program Files\mysql-8.0.11-winx64\my-default.ini
2、使用记事本打开ini文件,找到[mysqld],在下方添加skip_grant_tables,该语句代表登录mysql时跳过输入密码的操作,忽略登录检查
3、重启数据库服务:管理员身份打开命令行cmd,非管理员身份重启mysql会报错
①停止服务器,命令行输入
net stop mysql
回车
②启动服务器,命令行输入
net start mysql
回车
4、密码重置,命令行输入
mysql -u root -p
敲击回车,显示输入密码password,无需输入密码,再次敲击回车,进入mysql,命令行显示【mysql>】
# 将数据库切换至mysql库
mysql> USE mysql
回车
# 修改密码
mysql> UPDATE user SET password=PASSWORD(‘newpasswd’)WHERE user=’root’
回车
# 刷新MySQL权限相关的表
mysql> flush privileges
mysql> exit
退出数据库
5、修改ini文件,再次打开my-default.ini或者my.ini文件,注释掉skip_grant_tables(在skip_grant_tables前面加一个 # 注释),保存并退出
6、重启数据库服务