docker4:外部Navicat連結docker內容器mysql,步驟及錯誤及解決辦法...晚上才改出來錯誤,憋了一下午真是太難受了...
阿新 • • 發佈:2019-01-06
OK,lets go.
啟動mysql服務:
$ docker exec -it forth-mysql bash
選擇mysql資料庫
mysql> use mysql
mysql> select user,host,authentication_string from user;
紅框的這個root,host是%,如果host是localhost的話,外部(Navicat)是不能訪問的這個資料庫的(意思就是沒有遠端連線許可權)
新增這個使用者時用的這個語句:
mysql> set password for "root"@"%"=password("123456");
這個可能不能用,這塊可以百度一下,有很多。
(怎麼總感覺自己做夢夢見過新增連結這步...最近學docker學魔怔了...做夢都是)
然後去navicat連線:
先在docker裡查一下機器IP
$ docker machine IP
查到192.168.99.100 ,其實這步不查也行,因為只要是Windows下的docker都是這個IP。
順便這塊有個小沒啥用知識點:
$ docker inspect --format '{{ .NetworkSetting.IPAddress}}' forth-mysql
我也不知道這個是查出個啥IP,大概是forth-mysql這個服務例項的IP???
言歸正傳,這時候我們去Navicat輸入了host,埠號(在啟動服務是設定的,run那步),賬號,密碼後,點選測試連線,會發現出現了這個錯誤:
2059 - authentication plugin 'caching_sha2_password' ...
這個問題憋了我一下午...琢磨來琢磨去,就差去C區找後端打聽了...
然後發現網上有答案...我到底是為什麼當時沒去百度呢???因為這個錯誤提示不能複製嗎???
OK,話不多說,解決辦法在這:
這倆其實是一個意思,就是這個命令:
mysql> alter user "root"@"%" identified with mysql_native_password by "123456";
這個真的可以解決,然後再用Navicat連結,成功啦哈哈哈~
截個圖慶祝一下
ヾ(◍°∇°◍)ノ゙加油~