Docker Compose--安装MySQL8的方法(实例)

Docker Compose--安装MySQL8的方法(实例)

老阳
2024-08-22 / 0 评论 / 23 阅读 / 正在检测是否收录...

简介

本文介绍使用 Docker compose 安装 MySQL8 的方法。

脚本及配置

目录结构

├── docker-compose.yml # docker-compose.yml文件
├── conf
│   └── my.cnf  # MySQL配置文件
├── data # 数据库数据文件目录
├── log # 日志存放目录
└── bak # 手动备份数据的目录

data、log 不需要手动创建,在 docker compose 运行时会自动创建。

docker-compose.yml

version: "3.1"
services:
  mysqldb:
    # 启动方式
    restart: unless-stopped

    # 镜像
    image: mysql:8.0
    # 容器名字
    container_name: mysql
    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_0900_ai_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 配置文件)

[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_0900_ai_ci

# 最大连接数
max_connections=200

# 连接失败的最大次数。防止有人从该主机试图攻击数据库系统
max_connect_errors=20

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

skip-name-resolve

# binlog过期天数。默认是0(永远存在)
expire_logs_days=2

运行 docker compose

法 1:到配置文件目录下运行

docker compose up

会打印详细启动日志,而且会占用控制台。

后台运行的方法:

docker compose up -d

-d:在后台运行。

法 2:指定配置文件

docker compose -f /work/docker/docker-compose/mysql/docker-compose.yml up
docker compose 的启动、停止等命令,全都是这样的,要么在配置文件目录下执行,要么指定配置文件。

查看运行结果

compose 查看

docker compose ls

image.png

docker 查看

docker ps

给用户赋予权限

进到 MySQL 这个 docker 中

docker exec -it mysql8 bash

连接到 MySQL 服务

mysql -uroot -p

回车后输入密码:123456,然后再回车即可。

授予所有权限

GRANT ALL ON *.* TO 'adminUser'@'%';

刷新权限

FLUSH PRIVILEGES;

Navicat 连接测试

image.png

停止容器

docker compose stop

停止容器,但不删除容器。

启动容器

docker compose start

删除容器

法 1:rm

docker compose rm

只删除容器

法 2:down

docker compose down

停止容器,然后删除容器。

0

评论 (0)

取消