Docker最全教程之MySQL容器化 (二十四)

雪雁發表於2019-06-11

前言                

MySQL是目前最流行的開源的關係型資料庫,MySQL的容器化之前有朋友投稿並且寫過此塊,本篇僅從筆者角度進行總結和編寫。


 

目錄  

  • 映象說明 

  • 執行MySQL容器映象 

1.執行MySQL容器 

2.修改“root”賬戶的認證模式和密碼 

  • 管理MySQL 

1. MySQL命令列工具 

2. Visual Studio Code的MySQL外掛 

3. phpmyadmin 


 

MySQL是目前最流行的開源的關係型資料庫,因其高效能、可靠性和易用性而廣受開發者的歡迎,尤其是開放原始碼這一特點,一般中小型網站的開發都會優先選擇MySQL作為網站資料庫。

與其他的大型資料庫例如Oracle、DB2、SQL Server等相比,MySQL雖然有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對於一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有餘,而且由於 MySQL是開放原始碼軟體,因此可以大大降低總體擁有成本。


 

映象說明

MySQL的官方映象地址為:https://hub.docker.com/_/mysql

 


執行MySQL容器映象

1.執行MySQL容器

接下來,我們使用PowerShell來執行MySQL映象。指令碼如下所示:

docker run --name mysql `

-e MYSQL_ROOT_PASSWORD=123456 `

-p 3306:3306 `

-d mysql

相關引數說明如下所示:

表7-2

引數

描述

-e MYSQL_ROOT_PASSWORD=123456

此變數是必須的,用於指定MySQL超級管理員帳戶(root)的密碼。

-p 3306:3306

建立容器埠和主機埠的對映。MySQL預設埠為3306。

-d

在後臺執行容器並列印容器ID。

--name mysql

為容器指定一個自定義名稱,而不是使用隨機生成的名稱。 如果執行多個容器,則無法重複使用相同的名稱。

mysql

MySQL容器映象。

執行介面如圖所示:

 

同樣的,我們可以參考前面的章節使用資料卷或者主機目錄來完成MySQL的資料持久化,參考命令引數如下:

  • 使用資料卷“-v my-volume:/var/lib/mysql”
  • 使用主機目錄“-v d:\temp\data:/var/lib/mysql”

2.修改“root”賬戶的認證模式和密碼

MySQL容器已經執行了,如果我們滿懷欣喜地使用Visual Studio Code的MySQL擴充套件外掛去連線時,就會碰到這麼一個錯誤:

 

究其原因,其實就是MySQL新版本的“caching_sha2_password”授權認證模式的問題,我們將其改回“mysql_native_password”授權模式即可。

主要有以下幾步操作:

1)        進入MySQL容器

docker exec -it mysql /bin/bash

 

2)        使用MySQL命令列工具連線MySQL

mysql -h localhost -u root -p

需要輸入密碼:

 

3)        修改“root”賬戶的認證模式

連線成功後,接下來我們就可以使用SQL語句來修改“root”賬戶的認證模式了:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

注意,最後的字串“123456”為“root”賬戶的密碼。

 

4)        驗證外部連線

同樣的,我們使用Visual Studio Code的MySQL擴充套件外掛進行驗證,正常情況如下所示:

 


 

管理MySQL

這裡我們主要簡單的介紹以下MySQL命令列工具和Visual Studio Code的MySQL擴充套件外掛。

1. MySQL命令列工具

進入方式在前面的章節我們已經多次講述了,這裡就不贅述了。使用MySQL命令列工具,我們可以非常方便的進行管理資料庫。比如:

  • 檢視資料庫

 

  • 建立資料庫

 

  • 執行其他查詢

 

2. Visual Studio Code的MySQL外掛

由於大部分MySQL UI管理工具都要錢,這裡就首要推薦使用萬能的Visual Studio Code的MySQL的外掛來進行管理。

  • MySQL外掛

使用起來非常簡單:

 

  • SQLTools

支援多種資料庫(MySQL、MSSQL、PostgreSQL、Oracle、SQLite、SAP HANA),支援書籤、查詢語句智慧提示和自動完成以及將資料匯出CSV或JSON:

3. phpmyadmin

phpMyAdmin 是一個B/S架構的MySQL的資料庫管理工具,讓管理者可用Web介面管理MySQL資料庫。我們可以使用容器來執行phpmyadmin,官方映象地址:https://hub.docker.com/r/phpmyadmin/phpmyadmin

執行命令如下:

docker run --name myadmin `

 --link mysql:db `

 -e MYSQL_ROOT_PASSWORD=123456 `

 -p 8080:80 `

 -d phpmyadmin/phpmyadmin

如上述命令所示,我們執行了一個phpmyadmin容器例項,其中MySQL的“root”賬戶密碼為“123456”。執行成功後,就可以訪問“http://localhost:8080/”以進入以下管理介面(登入賬戶和密碼分別為“root”、“123456”):

管理功能很強大,非常值得推薦。

 

往期內容連結

Docker最全教程——從理論到實戰(一)

Docker最全教程——從理論到實戰(二)

Docker最全教程——從理論到實戰(三)

Docker最全教程——從理論到實戰(四)

Docker最全教程——從理論到實戰(五)

Docker最全教程——從理論到實戰(六)

Docker最全教程——從理論到實戰(七)

Docker最全教程——從理論到實戰(八)

相關文章