阿里云服务器优惠券 优惠券
坑一:
安装完成后进入数据库show databases;、或者尝试更改权限时报错
ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist
Table 'mysql.role_edges' doesn't exist
解决办法
mysql.server start
mysql_upgrade -u root -p
坑二:
在客户端成功连接数据库之后,发现项目里的pdo连接mysql又报错了。
Next PDOException: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client [caching_sha2_password] in /vendor/yiisoft/yii2/db/Connection.php:687
这个错可能是mysql默认使用caching_sha2_password作为默认的身份验证插件,而不再是mysql_native_password,但是客户端暂时不支持这个插件导致的。官方文档说明
In MySQL 8.0, caching_sha2_password is the default authentication plugin rather than mysql_native_password. For information about the implications of this change for server operation and compatibility of the server with clients and connectors, see caching_sha2_password as the Preferred Authentication Plugin.
在MySQL 8.0中,caching_sha2_password是默认的身份验证插件,而不是mysql_native_password。有关此更改对服务器操作的影响以及服务器与客户端和连接器的兼容性的信息,请参阅caching_sha2_password作为首选身份验证插件。
解决方法
编辑my.cnf文件,更改默认的身份认证插件。
使用如下命令查看该文件的位置
brew list mysql
cd到my.cnf文件所在位置,新增如下内容
default_authentication_plugin=mysql_native_password
重启mysql
mysql.server restart
阿里云服务器优惠券 优惠券