Navicat连接mysql报错【1045 - Access denied for user 'root'@'localhost'(using password: YES)】

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、重启数据库服务

你可能感兴趣的:(数据库)