背景
周末閑着沒事,然后想着在虛擬機用docker裝個mysql吧。然后就開始安裝了。
正文
打開dockerhub.com,在輸入框輸入mysql,選擇mysql第一個,進入后找到How to use this image,當時我是按照這個命令去做了,之后mysql也啟動了。
但是客戶端端就是連接不了,我去授權一直授權不成功。 GRANT ALL PRIVILEGES ON *.* TO 'root' @ '%' IDENTIFIED BY 'root' WITH GRANT OPTION; 在8.0之后授權的方式變了,所以一直授權不了,這是一個問題。可以此采用
GRANT ALL ON *.* TO 'root'@'%';
flush privileges;
這是授權問題解決了。其實第一問題是,映射一直沒有做到,-p 3306:3306的時候一直報錯,但今天又試了一下,之后成功了。docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:latest,查看映射也可以了。

之后客戶端還是連接不了,如下錯誤。
搜索了一下,是mysql版本問題,8.0之后的加密規則發生了變化,所以 修改一下加密規則就可以了。如圖:

之后再次連接,

總結
有時候不能靠以前的經驗來做事,所有事情並不是一成不變的。要敢於去嘗試新的東西,不要光想,重要的是去實踐。