使用docker方式部署数据库

1 docker compose 文件

需要根据实际情况,调整映射的目录位置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
version: "3.3"  

services:
cloud-river-mysql:
image: mysql:8.0.33
container_name: cloud-river-mysql
user: root
ports:
- "3306:3306"
volumes:
# 数据
- ./data//mysql/mysql_data:/var/lib/mysql
# 日志
- ./data/mysql/logs:/var/log/mysql
# 初始化脚本
- ./database/mysql/sql:/docker-entrypoint-initdb.d
# 配置文件
- ./database/mysql/my.cnf:/etc/mysql/my.cnf
networks:
cloud-river:
ipv4_address: 172.24.172.2
environment:
# 基于 Debian 镜像,有zoneinfo目录
TZ: Asia/Shanghai
# 自动创建数据库
MYSQL_DATABASE: cloud-river
MYSQL_ROOT_PASSWORD: cloudriver123
MYSQL_ROOT_HOST: '%'
# 可以输入中文
LANG: C.UTF-8
restart: always

cloud-river-clickhouse:
image: clickhouse/clickhouse-server:23.3.8.21
container_name: cloud-river-clickhouse
user: root
ports:
- "8123:8123"
- "9000:9000"
volumes:
- ./data/clickhouse/clickhouse_data:/var/lib/clickhouse
- ./database/clickhouse/clickhouse.sql:/docker-entrypoint-initdb.d/clickhouse.sql
# ubuntu 20.04 默认不安装tzdata,因此需要映射此目录,否则时区配置无效
- /usr/share/zoneinfo:/usr/share/zoneinfo
networks:
cloud-river:
ipv4_address: 172.24.172.3
environment:
# 基于 Ubuntu 镜像,没有zoneinfo目录,需要挂载
TZ: Asia/Shanghai
CLICKHOUSE_PASSWORD: cloudriver123
restart: always

cloud-river-redis:
image: redis:7.0.12
container_name: cloud-river-redis
user: root
ports:
- "6379:6379"
volumes:
- ./data/redis/redis_data:/data
networks:
cloud-river:
ipv4_address: 172.24.172.4
command: redis-server --requirepass "cloudriver123"
environment:
# 基于 Debian 镜像,有zoneinfo目录
TZ: Asia/Shanghai
logging:
driver: "json-file"
options:
max-size: "10m"
restart: always

# 强制指定网络,避免网络冲突,造成服务器ping不通,ssh无法登录
networks:
cloud-river:
ipam:
config:
- subnet: 172.24.172.0/24

2 配置文件

2.1 mysql

2.1.1 my.cnf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

# 设置错误日志路径
log-error=/var/log/mysql/error.log

# 设置慢查询日志路径
slow_query_log_file=/var/log/mysql/slow.log

# 慢查询时间
long_query_time=2

2.1.2 启动脚本

  • 可以是单个文件,也可以是个目录,存放多个sql文件;
  • 不需要创建数据库,在compose中已经创建;
  • 多个sql文件,按照文件名的字典序,先后执行,数字开头大于字母开头。

2.2 clickhouse

  • 可以是单个文件,也可以是个目录,存放多个sql文件;
  • 需要创建数据库;
  • 多个sql文件,按照文件名的字典序,先后执行,数字开头大于字母开头。
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2020-2024 zhanglonglong
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信