docker?安裝部署多個(gè)MySQL的實(shí)現(xiàn)步驟
環(huán)境配置
本地操作系統(tǒng):Win10
虛擬機(jī)的操作系統(tǒng):CentOS Stream 8
已安裝docker,可以參考詳細(xì)安裝教程
安裝MySQL
如果docker安裝成功,我們可以直接使用指令啟動(dòng)一個(gè)docker運(yùn)行MySQL服務(wù),指令如下:
docker run -p 3306:3306 --name mysql8.0 -e MYSQL_ROOT_PASSWORD=1234 -d mysql
指令參數(shù)說明:
- run:?jiǎn)?dòng)docker。
- -p 3306:3306:設(shè)置操作系統(tǒng)與docker的端口對(duì)接,第一個(gè)3306是操作系統(tǒng)的端口,用于對(duì)完使用;第二個(gè)是docker運(yùn)行MySQL的服務(wù)端口3306。
- –name mysql8.0:是啟動(dòng)這個(gè)docker的容器名字,可以自行命名。
- -e MYSQL_ROOT_PASSWORD=1234是設(shè)置docker的MySQL的root用戶密碼。
- -d mysql:是鏡像名稱,如果沒有規(guī)定MySQL版本,使用mysql默認(rèn)安裝最新版本,如果規(guī)定mysql版本,可以加上版本信息,如-d mysql5.7。
如果直接啟動(dòng)docker,而本地還沒下載MySQL鏡像,docker會(huì)默認(rèn)自動(dòng)下載MySQL鏡像。指令執(zhí)行完成后,分別輸入指令查看當(dāng)前docker和鏡像信息:
docker ps -a docker images
修改MySQL加密方式
由于最新版MySQL的加密方式改變了,如果使用Navicat Premium 15等工具連接可能無法連接成功,我們需要對(duì)docker里面的MySQL進(jìn)行修改。
輸入docker exec -it mysql8.0 bash
進(jìn)入當(dāng)前docker,其中mysql8.0是這個(gè)docker的容器名字,如圖所示:
此時(shí),我們已經(jīng)進(jìn)入docker內(nèi)部,然后分別輸入MySQL指令修改用戶密碼的加密方式,指令如下:
mysql -uroot -p1234 use mysql; alter user 'root'@'%' identified with mysql_native_password by '1234'; select host,user,plugin,authentication_string from mysql.user;
指令執(zhí)行結(jié)果如圖所示:
最后分別輸入兩次exit
退出MySQL和docker。
在Win10的Navicat Premium 15連接虛擬機(jī)的CentOS的docker的MySQL,連接端口3306是啟動(dòng)run指令的參數(shù) - -p 3306:3306的第一個(gè)端口,如圖所示。
安裝第二個(gè)MySQL
如果要在同一個(gè)操作系統(tǒng)運(yùn)行多個(gè)docker的MySQL,只需在run指令設(shè)置參數(shù) - -p 的對(duì)完端口即可,比如啟動(dòng)第二個(gè)MySQL服務(wù),可執(zhí)行下面指令:
docker run -p 3307:3306 --name mysql8.1 -e MYSQL_ROOT_PASSWORD=1234 -d mysql
上述指令參數(shù)說明
- -p第一個(gè)參數(shù)是3307,代表centos8的3307端口,因?yàn)?306端口已被第一個(gè)docker占用了;第二個(gè)參數(shù)3306是docker里面MySQL的運(yùn)行端口,由于每個(gè)docker都是獨(dú)立運(yùn)行的,因此兩個(gè)docker都能使用3306。
- 參數(shù)–name必須與第一個(gè)docker的命名不能相同,否則會(huì)有沖突。
啟動(dòng)docker之后,剩下的操作就是修改MySQL的用戶密碼加密方式,這個(gè)操作在上述已有講述。
到此這篇關(guān)于docker 安裝部署多個(gè)MySQL的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)docker安裝部署多MySQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker 解決獲取容器獲取的時(shí)間不是本地時(shí)間的問題
這篇文章主要介紹了Docker 解決獲取容器獲取的時(shí)間不是本地時(shí)間的問題的相關(guān)資料,需要的朋友可以參考下2016-11-11使用Golang玩轉(zhuǎn)Docker API的實(shí)踐
這篇文章主要介紹了使用Golang玩轉(zhuǎn)Docker API的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Docker掛載/etc/timezone報(bào)錯(cuò)問題
這篇文章主要介紹了Docker掛載/etc/timezone報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11使用docker compose搭建consul集群環(huán)境的例子
consul是HashCorp公司推出使用go語(yǔ)言編寫的開源工具,用于實(shí)現(xiàn)分布式系統(tǒng)的服務(wù)發(fā)現(xiàn)與配置,今天給大家普及使用docker compose搭建consul集群環(huán)境的方法及consul基本知識(shí)講解,感興趣的朋友一起看看吧2021-06-06