1. 程式人生 > >主機Navicat連線Ubuntu下Docker啟動的MySQL詳細教程並解決遇到的錯誤

主機Navicat連線Ubuntu下Docker啟動的MySQL詳細教程並解決遇到的錯誤

一、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,問題解決~