Docker-compose部署MySql

确保服务器上安装了docker-compose

创建 Docker Compose 文件

这里使用 mysql:8.0.18 的版本

创建相关文件夹

位于 ~ 个人用户文件夹下

1
mkdir mysql

创建挂载目录

位于~/mysql

1
2
3
mkdir -p ./data/data
mkdir -p ./data/conf.d
mkdir -p ./data/log

编写 docker-compose.yaml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '3'
services:
mysql:
image: mysql:8.4.0
container_name: mysql
environment:
- MYSQL_ROOT_PASSWORD= ****** # root用户密码
volumes: # 映射日志目录,宿主机:容器
- ./data/log:/var/log/mysql
- ./data/data:/var/lib/mysql
- ./data/conf.d:/etc/mysql/conf.d
- /etc/localtime:/etc/localtime:ro # 让容器的时钟与宿主机时钟同步,避免时间的问题
ports:
- 3306:3306
restart: always # 容器随docker启动自启

开启相应的防火墙

启动

1
docker compose up -d

有部分是 docker-compose,目前docker cli自带了相关命令

连接测试

进入容器

1
docker exec -it 容器ID /bin/bash

测试

1
mysql -h 127.0.0.1 -uroot -p

建立用户以及远程链接

创建数据库

1
create database yourname

创建用户

1
create user 'customer' identified by 'asd2024'; 

赋予权限

1
GRANT ALTER, INDEX, REFERENCES, TRIGGER, SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'username';

这里使用 dataBase 进行连接,直接使用

1
jdbc:mysql://*******:3306/yourname

问题

pull image 网络原因连不上

更换代理,捣鼓了一个小时左右,发现国内的镜像都失效了,这里用一些其他的镜像

具体可以看这篇

之后修改yaml中的image即可