主機Navicat連線Ubuntu下Docker啟動的MySQL詳細教程並解決遇到的錯誤
阿新 • • 發佈:2018-11-02
一、docker下載並執行mysql映象
下載:
docker pull mysql:5.7 |
執行映象:
docker run -it --rm --name mysql -e MYSQL_ROOT_PASSWORD=hanxue -p 3306:3306 -d mysql |
進入容器中的mysql的shell命令:
docker exec -it mysql bash |
登入mysql賬號:
mysql -uroot -phanxue |
檢視host和user:
確保root的host為‘%’即代表可以遠端連線。
給root遠端登入許可權:
ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'hanxue'; |
重新整理:
FLUSH PRIVILEGES; |
此時mysql設定完畢。
二、主機Navicat連線Ubuntu中docker執行的mysql映象
檢視Ubuntu當前ip:
發現docker竟然自己分配了個ip,想想美滋滋,於是在主機試試ping一下:
真的能ping通,於是直接在主機開啟navicat,輸入資訊並連線:
這是咋回事?怎麼會報2003 - Can't connect to MySQL server on 'x.x.x.x' (10038)錯誤呢?明明能ping通的啊,怎麼連線不上,想想覺得很傻,這個ip是docker分配的ip啊,又不是Ubuntu的主機IP,於是ping一下10.0.2.15:
??????????????????
原來VirtualBox預設用的是NAT網路轉換
,這個10.0.2.15和我主機的ip根本不在一個區域網中,自然ping不通。於是把連線方式改成橋接網絡卡:
檢視ip:
主機ip:
看網段就知道了還ping啥呢,於是改掉mysql主機ip為222.24.32.231:
ok,問題解決~