This repository has been archived on 2025-06-28. You can view files and clone it, but cannot push or open issues or pull requests.
Files
vitepress-theme-blog-charle…/docs/courses/mysql/03-附录/02-Docker安装MySQL.md

149 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Docker 安装 MySQL 详细步骤
author: 查尔斯
date: 2022/10/30 17:36
categories:
- MySQL快速入门
tags:
- MySQL
- Docker
- 容器
showComment: false
---
# Docker 安装 MySQL 详细步骤
::: tip 笔者说
笔者下面的步骤及配置是基于指定版本的实践,大多数程序大多数情况下在相差不大的版本时可以直接参考。(当然了,即使是非 Docker 方式安装程序也是一样道理)
:::
## 拉取镜像
::: warning 笔者说
拉取镜像时需要明确镜像版本Tag
:::
不指定版本Tag就拉取镜像那拉取下来的镜像版本Tag默认是 `latest`(最新的)。`latest` 会跟随 Docker Registry 中的记录变化,现在拉取下来的 `latest` 是 x1 版本,但隔了一段时间后你在其他机器上再拉取 `latest` 可能就是 x2 版本了。
变化的版本,不利于生产环境部署的稳定。无论是后续在其他环境部署还是扩容集群等场景均要求根据架构要求指定好版本。
```shell
docker pull mysql:8.0.29
```
## 运行容器
::: warning 笔者说
**下方的配置,切记要根据个人实际情况来修改。**
:::
- 容器的名称
- 镜像名称:版本
- 是否设置自启动?
- 环境变量配置
- 是否端口映射?
- 映射的话映射到宿主机哪个端口?
- 是否挂载卷?
- 挂载的话要挂载宿主机哪个目录?
- ......
- 等自定义配置
```shell
# MYSQL_ROOT_PASSWORDroot 用户密码
# MYSQL_DATABASE初始化数据库
# MYSQL_USER初始化普通用户
# MYSQL_PASSWORD初始化普通用户密码
docker run -d \
--name mysql mysql:8.0.29 \
--restart=always \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=test \
-e MYSQL_USER=test \
-e MYSQL_PASSWORD=123456 \
-p 3306:3306 \
-v /opt/disk/docker/volumes/mysql/conf:/etc/mysql/conf.d \
-v /opt/disk/docker/volumes/mysql/data:/var/lib/mysql \
-v /opt/disk/docker/volumes/mysql/logs:/logs \
# 使用该参数,容器内的 root 用户才拥有真正的 root 权限
--privileged=true
```
## 验证
服务器开放好相应端口或设置好安全组规则后,直接用 Navicat 连接即可。
## Docker Compose脚本
如果你是用的 docker-compose 来安装,下方附上相应 docker-compose.yml 脚本内容。
```yaml
version: '3'
services:
mysql:
container_name: mysql
image: mysql:8.0.29
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: test
MYSQL_USER: test
MYSQL_PASSWORD: 123456
ports:
- 3306:3306
volumes:
- /opt/disk/docker/volumes/mysql/conf:/etc/mysql/conf.d
- /opt/disk/docker/volumes/mysql/data:/var/lib/mysql
- /opt/disk/docker/volumes/mysql/logs:/logs
privileged: true
```
编写好 docker-compose.yml 脚本后,在脚本同级目录执行下方命令即可。
```shell
docker-compose up -d
```
## 附安装MariaDB
### 运行容器
```shell
docker run -d \
--name mariadb mariadb \
--restart=always \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=test \
-e MYSQL_USER=test \
-e MYSQL_PASSWORD=123456 \
-p 3306:3306 \
-v /opt/disk/docker/volumes/mysql/conf:/etc/mysql/conf.d \
-v /opt/disk/docker/volumes/mysql/data:/var/lib/mysql \
--privileged=true
```
### Docker Compose脚本
```yaml
version: '3'
services:
mariadb:
container_name: mariadb
image: mariadb
restart: always
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: test
MYSQL_USER: test
MYSQL_PASSWORD: 123456
ports:
- 3306:3306
volumes:
- /opt/disk/docker/volumes/mysql/conf:/etc/mysql/conf.d
- /opt/disk/docker/volumes/mysql/data:/var/lib/mysql
privileged: true
```