今天在使用VS code访问MySQL数据库时,出现以下的错误。
ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MariaDB client
我当时有点懵,我之前使用C#去连接数据库时也采用了相同的方法去连接,但是并没出现错误,于是上网查了一下资料:
原因:
最新的mysql模块并未完全支持MySQL 8的“caching_sha2_password”加密方式,而“caching_sha2_password”在MySQL 8中是默认的加密方式。因此,下面的方式命令是默认已经使用了“caching_sha2_password”加密方式,该账号、密码无法在mysql模块中使用。
解决方法:
在进入数据库之后进行下列操作(命令行执行mysql -uroot -p并输入密码登录数据库):
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
-- password注意改成自己的密码