通过Docker部署zipkin环境,并把数据存储配置成mysql(也是Docker拉取的镜像)。

问题描述:先在mysql中创建zipkin库,再修改环境变量,重启zipkin后报错“Access denied for user 'root'@'172.17.0.1' (using password: NO)”。但mysql用Navicat能够连接上。


问题原因:对于熟悉mysql的人,这个错误应该很容易定位。从MySQL8.0 开始,默认的验证方式是 caching_sha2_password(参见 MySQL 8.0.4 : New Default Authentication Plugin : caching_sha2_password)

 

解决办法:将验证方式修改为“mysql_native_password”

USE mysql; 

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '<password>';

FLUSH PRIVILEGES;

修改后再查询 select user,host,plugin from user; 结果如下

userhostplugin
root   %  mysql_native_password
healthchecker   localhost   caching_sha2_password
mysql.infoschema   localhost   caching_sha2_password
mysql.session   localhost   caching_sha2_password
mysql.sys   localhost   caching_sha2_password

 

备注:貌似这些参数在启动mysql容器的时候是可以修改的。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐