搭建Laradock后,用Navicate连接时报错,报错码为1251,就是说版本过高,Navicate驱动不支持了,经查找资料,原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,解决问题方法有三种,一种是升级navicat驱动,第两种是把mysql用户登录密码加密规则还原成mysql_native_password,第三种是降低mysql版本为5.8以下,哈哈。
第二种解决方法:
#命令行进入mysql
mysql -u root -p root
use mysql;
select host,user from user;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #更新一下用户的密码
FLUSH PRIVILEGES; #刷新权限
其中:
'root' 为自定义的用户名,laradock默认账号密码为:default/secret
'localhost' 指的是用户开放的IP,可以是'localhost'(仅本机访问,相当于127.0.0.1),可以是具体的'*.*.*.*'(具体某一IP),也可以是 '%' (所有IP均可访问)
'password' 为自定义的用户密码
default 用户登录只能看见两张表:
root 用户:
要么修改default用户的权限,要么就是修改root的加密规则,我选择后者,因为我懒。如图修改完之后Navicate连接成功。
第三种解决方法:
Laradock的mysql:Link
参考链接:Link