Docker 部署 MySQL

拉取镜像

本文以 5.7 为例,如有其它版本需求,可以修改。

1
docker pull mysql:5.7

运行镜像

数据库程序与数据需要进行分离,将数据存放在容器外部。这样当容器异常或 MySQL 服务异常时,重新启动一个全新的容器即可解决,数据不会随之丢失。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
docker run --name <容器名称> \
-e MYSQL_ROOT_PASSWORD=<数据库 root 用户的密码> \
-p <宿主机端口>:3306 \
-v <本机存放 mysql 日志的目录>:/var/log/mysql \
-v <本机存放 mysql 数据的目录>:/var/lib/mysql \
--restart always \
-d mysql:5.7

# 样例
docker run --name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
--restart always \
-d mysql:5.7

(另一个方式运行)docker-compose.yml 参考

如果不喜欢上一步的直接运行,可以按照本步骤进行。

docker run 或者 docker compose 二选一即可。

新建一个文件夹,进入文件夹内新建 docker-compose.yml 文件,内容参考如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
services:
mysql:
container_name: mysql
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=123456
volumes:
- ./logs:/var/log
- ./data:/var/lib/mysql
network_mode: bridge
ports:
- 3306:3306
restart: always

然后通过下面的命令直接启动部署:

1
2
3
4
5
# 旧版
docker-compose up -d

# 新版
docker compose up -d

测试

使用 Navicat 或者 DataGrip 连接测试

这里使用 DataGrip

首先,新建一个数据源,填写以下信息,先不急着 test connection 或者应用。

Name 可以按自己看着顺眼写。

Host 填写 ip 地址。

User 填 root,Password 密码与上方运行镜像时写的密码一致。

然后切换 Advanced 选项卡内,将 useSSL 改为 FALSE。

然后点击测试连接,连接成功后点击 ok 完成。

选择显示所有数据库

完成。


··· EOF ···


> 喜欢文章,支持一下 <

Docker 部署 MySQL
https://www.lechnolocy.cn/2023/07/03/Docker 部署 MySQL/
作者
Lechnolocy
发布于
2023年7月3日
许可协议