問(wèn)題
使用docker創(chuàng)建了mysql容器
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql
之后用navicat等軟件無(wú)法連接mysql服務(wù)器。會(huì)出現(xiàn)如下提示:
MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image not found
原因
從MySQL8.0 開(kāi)始,默認(rèn)的加密規(guī)則使用的是 caching_sha2_password,之前使用的是mysql_native_password。而我們的客戶端并不支持 caching_sha2_password這種規(guī)則。
解決
docker鏡像創(chuàng)建的時(shí)傳入?yún)?shù),使mysql服務(wù)器默認(rèn)使用mysql_native_password規(guī)則。
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql --default-authentication-plugin=mysql_native_password