本笔记记录了如何使用 Docker 容器化地安装 MySQL 数据库服务。它遵循 Docker 部署关系型数据库策略 中描述的通用原则,并详细说明了 MySQL 特有的配置和最佳实践。

为什么选择 Docker 安装 MySQL?

  • 核心部署原则 中阐述的通用优势。

  • MySQL 特有优势: 广泛应用于 Web 开发、性能优异、社区支持广泛等。

核心部署策略:使用 Docker Compose

遵循 Docker Compose 的使用方法,以下是 MySQL 的典型配置。

docker-compose.yml 示例

services:
  db:
    image: mysql
    deploy:
      restart_policy:
        condition: always
        delay: 5s
        window: 60s
    container_name: mysql8
    restart: always
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: Mysql12#$ 
      MYSQL_DATABASE: n8n
    volumes:
      - /etc/localtime:/etc/localtime:ro # 保持容器时间与宿主机一致
      - /etc/timezone:/etc/timezone:ro # 保持容器时间与宿主机一致
      - /fs/1000/ftp/docker/mysql/data:/var/lib/mysql

如何运行: 在包含上述 docker-compose.yml 文件的目录下,执行 docker compose up -d 命令。

关键配置解析(MySQL 特有/强调):

  • 镜像选择 (image: mysql:8.0): MySQL 官方镜像。
  • 环境变量 (environment): MySQL 容器启动时识别 MYSQL_ROOT_PASSWORDMYSQL_DATABASEMYSQL_USERMYSQL_PASSWORD 这些变量初始化数据库。注意 MYSQL_ROOT_PASSWORD 是必需的。
  • 数据持久化 (volumes): /var/lib/mysql 是 MySQL 存储数据的主目录,必须通过 Docker 卷 进行持久化。
  • 端口映射 (ports): MySQL 默认监听 3306 端口。

进一步考量(MySQL 特有):

  • 配置优化: 可以挂载自定义 my.cnf 文件进行性能调优。
  • 日志: MySQL 的错误日志、慢查询日志等配置。

相关笔记: