navicat连接MySQL8.0出现2059错误
今天想用navicat连接本地数据库,但是出现了标题的错误,然后通过查阅资料发现在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password。
在不想下载新navicat(因为还要下载破解版。。。)的情况下,将mysql用户登录的加密规则修改为mysql_native_password就可以了。
具体实现:
1.mysql -u root -p #登录
输入密码
2.ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER; #更改加密方式
其中的password是自己密码
3.ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’; #更新用户密码
其中的password是自己密码
4.FLUSH PRIVILEGES; #刷新权限
上述步骤做完就好啦。。
(成功的可以忽略下面的!!!!!!!!!!!!!!!!!!)
但是我中间操作失误了,导致密码丢失错误,于是开始查找则么更改密码,试了很多比如在my.ini中更改mysqld的属性(跳过验证的)然后重启服务直接登入,但是发现貌似在8.0中和谐了,反正我是更改了之后服务就启动不了了。我找到的现在更改的方法如下(欢迎大家补充哈):
1.在services.msc中停止mysql80服务
2.记事本中新建一个包含密码赋值语句的文本文件,将MyNewPass替换为你要修改的密码。
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘MyNewPass’;
3.保存文件。假如文件命名为D:mysql-init.txt。(D位在D盘根目录下)
4.在cmd中用–init-file选项启动mysql(注意:–init-file选项中的路径要用双反斜杠)
C:> cd “C:\Program Files\MySQL\MySQL Server 8.0\bin”
C:> mysqld --init-file=C:\mysql-init.txt
如果mysql安装到别的位置,将cd的路径替换成你安装的路径。
如果你是用 MySQL Installation Wizard方式安装的mysql,还要指定 --defaults-file选项。(可以直接使用这种,其实就是找下my.ini的位置,在Data中不在根目录下)
C:> cd “C:\Program Files\MySQL\MySQL Server 8.0\bin”
C:> mysqld --defaults-file=“C:\ProgramData\MySQL\MySQL Server 8.0\my.ini” --init-file=D:\mysql-init.txt
打完回车我这里是直接光标换行没任何提示,然后重启mysql80服务就可以啦。
小白。。望补充谢谢!