前言
記錄下Docker
下Mysql
的安裝
環境
Centos 7 + Docker 23.0.1 + Mysql 8.0.27
安裝Mysql
下載Mysql
- 下載最新版
mysql
docker pull mysql
- 查看鏡像列表
docker image ls
docker images
- 查看鏡像版本
docker image inspect (鏡像名稱):latest|grep -i version
- 移除鏡像
docker rmi (IMAGE ID)
- 指定版本下載
docker pull mysql:8.0.27
安裝Mysql
- 開啓
ipv4
, 雲服務器不需要設置,部分centos
需要設置,可以查看配置文件看是否設置,如果沒有則需修改配置文件
vim /usr/lib/sysctl.d/00-system.conf
添加
net.ipv4.ip_forward=1
- 重啓
network
服務
systemctl restart network
- 重啓docker服務
systemctl restart docker
- 啓動
mysql
容器
docker run -p 3306:3306 --name mysql \
-v /home/mysql8/log:/var/log/mysql \
-v /home/mysql8/data:/var/lib/mysql \
-v /home/mysql8/conf:/etc/mysql \
-v /home/mysql8/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=sunday \
-d mysql:8.0.27 \
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
- 參數釋義:
docker run: 運行一個容器,每個容器相互隔離,他都是獨立的運行環境,是一個完整的實例
-p 3306:3306:把mysql容器自己的端口映射到虛擬主機,這樣我們才能訪問,這是端口映射。(左側是本地端口:右側是docker容器裏的端口)
--name mysql:爲容器取名,這個名字隨意。
-v:文件路徑的掛載(數據庫文件,日誌,配置文件)
-e MYSQL_ROOT_PASSWORD:添加環境參數,如密碼
d mysql:8.0.27:在後端運行,指定使用的是哪個鏡像
- 查看運行中的容器
docker ps
- 安裝目錄
/home/mysql8
- 容器監控
docker stats
- 連接數據庫
配置Mysql
- 進入
mysql
容器
docker exec -it mysql bash
- 連接mysql
mysql -u root -p
- 修改用戶密碼
use mysql;
alter user 'root'@'localhost' identified with mysql_native_password by 'sunday'; // 修改密碼
flush privileges; // 刷新權限
- 設置遠程連接權限
use mysql;
select host from user where user = 'root'; // 通過該命令查看host是否有值'%',有了後面不用執行
update user set host='%' where user='root'; // 設置所有地址可登錄
flush privileges; // 刷新權限
- 設置密碼永不過期
alter user 'root'@'%' identified by 'sunday' password expire never;
flush privileges;
- 設置
mysql
跟隨docker
自動重啓
docker update mysql --restart=always