問題描述:
docker成功安裝了mysql,也正常啓動了。
啓動命名如下:
docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
用docker ps -a 也可以查到容器中mysql也在運行中,如下圖:
但是在本地用Navicat登錄的時候,發現報錯了。報錯信息
連接Docker啓動的mysql出現:ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded
信息如圖:
解決方案:
1.進入mysql容器
docker exec -it mysql01 /bin/bash
2.進入mysql
mysql -uroot -pmima(這個地方的老的密碼)
3.修改密碼
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';(這個地方是新的密碼)
修改好了之後,再用Navicat登錄就可以了。
4、注意事項:
這個時候,如果重啓下docker裏的mysql容器,用mysql命令登錄mysql服務器。你會發現,用新改的密碼是登錄不了的,需要用老的密碼(123456)才能登錄。這是因爲之前的alter語句的問題。要想保持密碼一致,需要再執行下alter語句。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
這裏要把剛纔那個 % 改成 localhost 才行。