Docker最全教程之MySQL容器化 (二十五)
前言? ? ? ? ? ? ? ??
MySQL是目前最流行的開源的關系型數(shù)據(jù)庫,MySQL的容器化之前有朋友投稿并且寫過此塊,本篇僅從筆者角度進行總結和編寫。
鏡像說明?
運行MySQL容器鏡像?
1.運行MySQL容器?
2.修改“root”賬戶的認證模式和密碼?
管理MySQL?
1. MySQL命令行工具?
2. Visual Studio Code的MySQL插件?
3. phpmyadmin?
MySQL是目前最流行的開源的關系型數(shù)據(jù)庫,因其高性能、可靠性和易用性而廣受開發(fā)者的歡迎,尤其是開放源碼這一特點,一般中小型網(wǎng)站的開發(fā)都會優(yōu)先選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。
與其他的大型數(shù)據(jù)庫例如Oracle、DB2、SQL Server等相比,MySQL雖然有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能已經綽綽有余,而且由于 MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。
鏡像說明
MySQL的官方鏡像地址為:
https://hub.docker.com/_/mysql
?運行MySQL容器鏡像
1.運行MySQL容器
接下來,我們使用PowerShell來運行MySQL鏡像。腳本如下所示:
相關參數(shù)說明如下所示:
參數(shù) | 描述 |
-e MYSQL_ROOT_PASSWORD=123456 | 此變量是必須的,用于指定MySQL超級管理員帳戶(root)的密碼。 |
-p 3306:3306 | 建立容器端口和主機端口的映射。MySQL默認端口為3306。 |
-d | 在后臺運行容器并打印容器ID。 |
--name mysql | 為容器指定一個自定義名稱,而不是使用隨機生成的名稱。?如果運行多個容器,則無法重復使用相同的名稱。 |
mysql | MySQL容器鏡像。 |
執(zhí)行界面如圖所示:
同樣的,我們可以參考前面的章節(jié)使用數(shù)據(jù)卷或者主機目錄來完成MySQL的數(shù)據(jù)持久化,參考命令參數(shù)如下:
使用數(shù)據(jù)卷“-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命令行工具
進入方式在前面的章節(jié)我們已經多次講述了,這里就不贅述了。使用MySQL命令行工具,我們可以非常方便的進行管理數(shù)據(jù)庫。比如:
查看數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫
執(zhí)行其他查詢
2. Visual Studio Code的MySQL插件
由于大部分MySQL UI管理工具都要錢,這里就首要推薦使用萬能的Visual Studio Code的MySQL的插件來進行管理。
MySQL插件
使用起來非常簡單:
SQLTools
支持多種數(shù)據(jù)庫(MySQL、MSSQL、PostgreSQL、Oracle、SQLite、SAP HANA),支持書簽、查詢語句智能提示和自動完成以及將數(shù)據(jù)導出CSV或JSON:
3. phpmyadmin
phpMyAdmin 是一個B/S架構的MySQL的數(shù)據(jù)庫管理工具,讓管理者可用Web接口管理MySQL數(shù)據(jù)庫。我們可以使用容器來運行phpmyadmin,官方鏡像地址:
https://hub.docker.com/r/phpmyadmin/phpmyadmin
執(zhí)行命令如下:
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最全教程——從理論到實戰(zhàn)(一)
Docker最全教程——從理論到實戰(zhàn)(二)
Docker最全教程——從理論到實戰(zhàn)(三)
Docker最全教程——從理論到實戰(zhàn)(四)
Docker最全教程——從理論到實戰(zhàn)(五)
Docker最全教程——從理論到實戰(zhàn)(六)
Docker最全教程——從理論到實戰(zhàn)(七)
Docker最全教程——從理論到實戰(zhàn)(八)? ??
Docker最全教程——從理論到實戰(zhàn)(九)
Docker最全教程之使用Tencent Hub來完成CI(十)Docker最全教程——數(shù)據(jù)庫容器化(十一)
Docker最全教程——數(shù)據(jù)庫容器化之持久保存數(shù)據(jù)(十二)
Docker最全教程——MongoDB容器化(十三)
Docker最全教程——Redis容器化以及排行榜實戰(zhàn)(十四)
Docker最全教程之Ubuntu下安裝Docker(十五)
Docker最全教程之樹莓派和Docker(十六)
Docker最全教程之使用TeamCity來完成內部CI、CD流程(十七)
Docker最全教程之使用Docker搭建Java開發(fā)環(huán)境(十八)
Docker最全教程之Go實戰(zhàn),墻裂推薦(十九)
Docker最全教程之使用.NET Core推送釘釘消息(二十)
Docker最全教程之使用 Visual Studio Code玩轉Docker(二十一)
Docker最全教程之Python爬網(wǎng)實戰(zhàn)(二十二)
使用PHP搭建個人博客站點
Docker最全教程之使用Node.js搭建團隊技術文檔站(二十四)
總結
以上是生活随笔為你收集整理的Docker最全教程之MySQL容器化 (二十五)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云物联网 .NET Core 客户端
- 下一篇: Ocelot(五)- 流量限制、服务质量