本次介紹如何在阿裡雲ECS雲伺服器中使用docker安裝最新mysql 8 并且進行遠端通路。
前言,安裝docker:阿裡雲ECS雲伺服器安裝docker并配置阿裡雲鏡像倉庫。
文章目錄
- 1 拉取mysql鏡像
- 2 檢視鏡像
- 3 建立mysql容器執行個體并運作
- 4 檢視容器執行個體
- 6 進入mysql容器并登陸
- 5 遠端連接配接navicat
-
- 5.1 mysql 8 遠端連接配接
- 7 修改時區
1 拉取mysql鏡像
該指令直接拉取最新mysql鏡像。
docker pull mysql
如果想要指定版本,那麼在官網可以找到mysql鏡像所有版本:https://hub.docker.com/_/centos,latest就表示最新版本,使用“:”分隔,在後面加上版本号即可,比如:
docker pull mysql:5.7
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR5EeBpnTyMmeNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxATNzUTMzUTMzAjMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2 檢視鏡像
docker images
3 建立mysql容器執行個體并運作
随後建立一個mysql容器執行個體,即可開始使用:
docker run -it --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
-it :配置設定一個僞tty,一般與 -i 連用。可以省去。
–name mymysql :設定目前mysql容器執行個體名為“mymysql” ,可以自己指定。
-e MYSQL_ROOT_PASSWORD=123456 :設定目前mysql容器執行個體密碼為“123456” ,可以自己指定。
-p 3306:3306 :設定目前mysql容器執行個體端口映射,前一個是遠端通路時的端口,後一個是預設端口。
-d mysql : 表示以背景形式mysql鏡像标簽
4 檢視容器執行個體
檢視正在運作的容器執行個體
docker ps -a
到此,實際上一個mysql容器執行個體就建立好了并且運作起來了,相對于傳統的安裝mysql,是不是很簡單啊?
這個mysql執行個體已經被儲存下來了,後續直接使用 docker start CONTAINER_ID 即可啟動, docker restart CONTAINER_ID即可重新開機, docker stop CONTAINER_ID。
6 進入mysql容器并登陸
如何進入mysql容器(這一步不是必須要做的)?
這裡的“013392c286a4 ”,表示目前容器id,可通過 docker ps -a 指令檢視。
此時已經進入了容器,随後可以進行登陸。
mysql -uroot -p
随後再輸入密碼,即可進入mysql服務中!
5 遠端連接配接navicat
第四步完成之後即可開始連接配接。注意,遠端連接配接之前需要在安全組開放通路的端口,在上一篇文章已經講了。這裡的端口是前一個指映射的端口!
随後直接使用navicat連接配接即可,這裡的ip使用我們的伺服器遠端ip,端口使用映射的端口,使用者名root(也可以自己建立使用者),密碼就是啟動執行個體是指定的密碼!
至于代碼連接配接,則同樣非常簡單,普通設定都是一樣的!
5.1 mysql 8 遠端連接配接
mysql 8以上預設使用的是caching_sha2_password身份驗證機制,之前用的是mysql_native_password,是以遠端連接配接可能會抛出1521、2059 等錯誤(大多是因為navicat不是最新版,而是老的盜版,最新版支援mysql 8加密方式),需要修改使用者的密碼加密校驗方式!
進入mysql容器并登陸mysql,執行:
這裡的password是自己指定的密碼,‘root’@’%'表示任何ip都可以連接配接。随後重新整理,即可正常遠端連接配接!
至于遠端通路權限,預設都是授予的,是以不必設定。
7 修改時區
mysql預設存儲時間類型的資料的時間值與系統時間總是不對應,相差8個小時。如果使用簡單的設定,那麼docker中每一次啟動mysql執行個體,設定資訊還是會被還原,是以我們這裡需要修改配置檔案,達到永久設定系統時區的功能!
首先進入mysql容器(不需要登陸),第6點已經講了。随後進入my.cnf的目錄:
cd /etc/mysql
添加一行:default-time_zone = ‘+8:00’ 配置到my.cnf末尾即可實作永久更改。
echo "default-time-zone = '+08:00'">>my.cnf
在代碼的url中也可以添加serverTimezone=Asia/Shanghai參數來臨時設定時區。