原文网址:Docker Compose--安装MySQL8的方法(实例)_IT利刃出鞘的博客-CSDN博客
简介
本文介绍使用Docker compose安装MySQL8的方法。
Java技术星球:way2j.com
脚本及配置
目录结构
bash
├── docker-compose.yml # docker-compose.yml文件
├── conf
│ └── my.cnf # MySQL配置文件
├── data # 数据库数据文件目录
├── log # 日志存放目录
└── bak # 手动备份数据的目录
data、log不需要手动创建,在docker compose运行时会自动创建。
docker-compose.yml
bash
version: '3.1'
services:
mysqldb:
# 启动方式
#restart: unless-stopped
# 镜像
image: mysql:8.0
# 容器名字
container_name: mysql8
privileged: true
environment:
# 时区
TZ: Asia/Shanghai
# root用户的密码
MYSQL_ROOT_PASSWORD: 123456
# 用户(不能是root, 后续需要给新用户赋予权限)
MYSQL_USER: adminUser
# 用户密码
MYSQL_PASSWORD: 222333
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
ports:
- 3306:3306
volumes:
- ./log/:/var/log/mysql/
- ./data/:/var/lib/mysql/
- ./conf/:/etc/mysql/conf.d/
- ./bak/:/bak/
my.cnf(mysql配置文件)
bash
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
#服务端口号 默认3306
port=3306
# 数据路径,默认是/var/lib/mysql/
#datadir = /app/data/
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 最大连接数
max_connections=200
# 连接失败的最大次数。防止有人从该主机试图攻击数据库系统
max_connect_errors=20
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
skip-name-resolve
# binlog过期天数。默认是0(永远存在)
expire_logs_days=2
运行docker compose
法1:到配置文件目录下运行
bash
docker compose up
会打印详细启动日志,而且会占用控制台。
后台运行的方法:
bash
docker compose up -d
-d:在后台运行。
法2:指定配置文件
bash
docker compose -f /work/docker/docker-compose/mysql/docker-compose.yml up
docker compose的启动、停止等命令,全都是这样的,要么在配置文件目录下执行,要么指定配置文件。
查看运行结果
compose查看
bash
docker compose ls
docker查看
bash
docker ps
给用户赋予权限
进到MySQL这个docker中
bash
docker exec -it mysql8 bash
连接到MySQL服务
bash
mysql -uroot -p
回车后输入密码:123456,然后再回车即可。
授予所有权限
bash
GRANT ALL ON *.* TO 'adminUser'@'%';
刷新权限
bash
FLUSH PRIVILEGES;
Navicat连接测试
停止容器
bash
docker compose stop
停止容器,但不删除容器。
启动容器
bash
docker compose start
删除容器
法1:rm
bash
docker compose rm
只删除容器
法2:down
bash
docker compose down
停止容器,然后删除容器。