0 序
- 雖然關於 mysql 安裝的教程,先前已寫過很多期了(參見如下列表),但這期的安裝教程所依賴的環境還是大有不同的————基於 docker 環境。
- [資料庫] MySQL之資料庫備份與升級:MySQL Percona(RPM) 5.7.24-27 升級到 5.7.31-34 - 部落格園/千千寰宇
- [資料庫] Windows:安裝MySQL[解壓版的安裝/解除安裝] - 部落格園/千千寰宇
- [資料庫] Ubuntu Linux之搭建遠端資料庫MySQL(全過程) - 部落格園/千千寰宇
-
docker
/k8s
虛擬化/容器技術 的出現,大大提升了安裝部署的效率。與環境的解耦,以此成倍數地提升軟體交付/軟體部署的效率,是它最大的功績。 -
好了,進入正題。
os
: centos 7這一點,無需關心,因為絕大多數情況下, docker 映象的使用者可以不太關心外部依賴(包括:作業系統)
docker
版本 : 25.0.3不懂 docker 的同志,請參見:
- [Docker] 基於CENTOS7安裝Docker環境 - 部落格園/千千寰宇
- [Docker] Docker 基礎教程(概念/原理/基礎操作) - 部落格園/千千寰宇
- [Docker] Docker Compose 基礎教程(概念/基礎操作) - 部落格園/千千寰宇
mysql
映象 : 5.7
2 安裝步驟
Step1 安裝 docker 環境
可參見本文
- [Docker] 基於CENTOS7安裝Docker環境 - 部落格園/千千寰宇
- 安裝 docker 映象
yum -y update
yum remove docker docker-common docker-selinux docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
yum -y install docker-ce-25.0.3-1.el7
- 檢視 docker 版本
docker version
- 啟動/檢視/開機自啟動 docker 程序
systemctl start docker
systemctl status docker
# 開機自啟動
systemctl enable docker
Step2 安裝 mysql 映象/容器 | 基於 docker
- 下載映象
docker pull mysql:5.7
# docker pull mysql:8
- 檢視(下載的)映象
docker images
- 建立資料儲存目錄
此舉是為了避免mysql映象停止執行後資料丟失,做到存算分離。
- /data/mysql/log:/var/log/mysql
- /data/mysql/data:/var/lib/mysql
- /data/mysql/conf.d:/etc/mysql/conf.d
- /data/mysql/my.cnf:/etc/my.cnf
mkdir -p /data/mysql/log
mkdir -p /data/mysql/data
mkdir -p /data/mysql/conf.d
touch /data/mysql/my.cnf
ls /data/mysql
- 設定 mysql root 使用者密碼
MYSQL_ROOT_PASSWORD=123456
echo ${MYSQL_ROOT_PASSWORD}
- 建立、並啟動容器
docker run --name mysql \
--restart=always \
-p 3306:3306 \
-v /data/mysql/log:/var/log/mysql \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf.d:/etc/mysql/conf.d \
-v /data/mysql/my.cnf:/etc/my.cnf \
-e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} \
-d mysql:5.7
注:第1個
3306
埠:是指宿主機的對映埠
注:第2個3306
埠:是指容器的被對映埠
- 檢視容器
docker ps -a
netstat -lntp | grep -i 3306
Step3 測驗:在宿主機中執行 mysql 容器 的 命令
- 方法1
docker exec -it mysql bash
> mysql -uroot -p${MYSQL_ROOT_PASSWORD} --port=3306 -h127.0.0.1 -e 'show databases;'
> exit
注:
MYSQL_ROOT_PASSWORD
也是 mysql container 的內建環境變數
- 方法2:
docker exec -it mysql sh -c "mysql -uroot -p${MYSQL_ROOT_PASSWORD} --port=3306 -h127.0.0.1 -e 'show databases;'"
X 參考文獻/推薦文獻
- Docker / Docker Compose
- [Docker] 基於CENTOS7安裝Docker環境 - 部落格園/千千寰宇
- [Docker] Docker 基礎教程(概念/原理/基礎操作) - 部落格園/千千寰宇
- [Docker] Docker Compose 基礎教程(概念/基礎操作) - 部落格園/千千寰宇
- [Docker] 基於CENTOS7的Docker版本升級 - 部落格園/千千寰宇
- mysql 安裝教程
- [資料庫] MySQL之資料庫備份與升級:MySQL Percona(RPM) 5.7.24-27 升級到 5.7.31-34 - 部落格園/千千寰宇
- [資料庫] Windows:安裝MySQL[解壓版的安裝/解除安裝] - 部落格園/千千寰宇
- [資料庫] Ubuntu Linux之搭建遠端資料庫MySQL(全過程) - 部落格園/千千寰宇
- mysql 使用
- [資料庫] MySQL之資料庫管理篇 - 部落格園/千千寰宇
- [資料庫]MySQL之SQL查詢 - 部落格園/千千寰宇
- [資料庫]MYSQL之儲存過程 - 部落格園/千千寰宇
- Docker安裝MySQL資料庫 - 騰訊雲/程式設計師雲帆哥
- 其他
- [Docker] Docker之搭建部落格系統Solo - 部落格園/千千寰宇