Navicat连接mysql报错【1045 - Access denied for user 'root'@'localhost'(using password: YES)】
系统;win 10
mysql版本: 5.7.32
安装方式: https://www.cnblogs.com/water-1/p/10802256.html
安装完成后,navicat 连接数据报错,如下:

解决方法:
1、先找到mysql安装目录下的my-default.ini或者my.ini文件,如 D:\Program Files\mysql\my-default.ini,如果都没有,就新建一个my.ini:
1 [mysql] 2 3 # 设置mysql客户端默认字符集 4 default-character-set=utf8 5 [mysqld] 6 #设置3306端口 7 port = 3306 8 # 设置mysql的安装目录 9 basedir=D:\\softnew\\MYSQL\\mysql-5.7.20-winx64 10 # 允许最大连接数 11 max_connections=200 12 # 服务端使用的字符集默认为8比特编码的latin1字符集 13 character-set-server=utf8 14 # 创建新表时将使用的默认存储引擎 15 default-storage-engine=INNODB 16 # 设置mysql数据库的数据的存放目录 17 datadir=D:\\softnew\\MYSQL\\mysql-5.7.20-winx64\\data
注意:修改下basedir、datadir后的路径,路径中为\\而非\
2、使用记事本打开ini文件,找到[mysqld],在下方添加skip_grant_tables,该语句代表登录mysql时跳过输入密码的操作,忽略登录检查
3、重启数据库服务:管理员身份打开命令行cmd,非管理员身份重启mysql会报错
①停止服务器:net stop mysql

②启动服务器:net start mysql
![]()
4、密码重置: mysql -u root -p
、、无需输入密码,直接回车
、、mysql> update user set password=password(‘newpasswd’) where user=’root’
、、刷新MySQL权限相关的表: mysql> flush privileges
退出数据库
6、my.ini注释掉skip_grant_tables(在skip_grant_tables前面加一个 # 注释),保存并退出
7、重启数据库服务
另 》 执行步骤4时会报错:
![]()
可执行 mysqld --console --skip-grant-tables --shared-memory

此时,重新用navicat连接数据库 ,成功


浙公网安备 33010602011771号