开始学MySQL,结果安装完SQLyog后连接不了,总是弹出提示2059错误。在网上查找了一下才发现原因,MySQL8.0.11版本启用了新特性,用户登录加密规则改为了caching_sha2_password,原有的不支持新特性。想使用caching_sha2_password新特性的话,需要更新一下驱动。
想继续使用以前的老特性,可以将mysql用户登录的加密规则还原为mysql_native_password,我这里用的就是修改加密规则。
方法有两种,
1.修改/etc/my.cnf
加入default_authentication_plugin=mysql_native_password
备注:重启生效
【方法引自
https://www.baidu.com/link?url=Wmmgb1S7t0yK432w5k9B9377GJArTkIEr4LyGvmJ87Pg-SbgYdLerzFAsYYCeShNvCpK0ceA7B7LkPE9yv9W8K&wd=&eqid=8645eab2000280ac000000035aeffc2c】【似乎是Linux系统的解决方法,Windows系统是my.ini,本人才学疏浅,失败了】
2.使用命令行【有效】
以管理员身份运行命令指示符,在开始菜单里输入cmd,搜索到后右键,以管理员模式运行。输入MySQL所在位置,格式如下
使用mysql -u root -p命令,输入密码,密码初始为空,直接点回车就行;
输入命令
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
password没有的就不输入。
再打开SQLyog就好了