# docker_mysql **Repository Path**: catic/docker_mysql ## Basic Information - **Project Name**: docker_mysql - **Description**: mysql docker 启动配置 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-15 - **Last Updated**: 2026-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MySQL (Docker Compose, macOS) 本目录提供一套在 macOS 上使用 Docker Compose 启动 MySQL 8 的配置,支持通过 `.env` 快速调整主要参数(端口、账号密码、字符集、数据目录、日志目录等)。 ## 目录结构 - `docker-compose.yml`:容器编排 - `.env`:本地实际运行配置(包含密码等敏感信息,不应提交) - `.env.example`:示例配置(不含敏感信息) - `conf/my.cnf`:MySQL 主配置(字符集、连接数、innodb、日志等) - `data/`:数据文件目录(由 `.env` 的 `MYSQL_DATA_DIR` 决定) - `logs/`:日志目录(由 `.env` 的 `MYSQL_LOG_DIR` 决定) ## 快速开始 1. 复制配置文件 ```bash cp .env.example .env ``` 2. 编辑 `.env`,至少修改密码 ```env MYSQL_ROOT_PASSWORD=change_me MYSQL_PASSWORD=change_me ``` 3. 启动 ```bash docker compose up -d docker compose ps ``` 4. 查看日志 ```bash docker compose logs -f mysql ``` ## 常用命令 ```bash docker compose up -d docker compose restart mysql docker compose down docker compose ps ``` 进入容器执行 SQL: ```bash docker compose exec mysql mysql -uroot -p ``` ## 可编辑参数(.env) - `MYSQL_CONTAINER_NAME`:容器名 - `MYSQL_PORT`:宿主机映射端口(默认 3306) - `MYSQL_TZ`:时区 - `MYSQL_ROOT_PASSWORD`:root 密码 - `MYSQL_DATABASE`:初始化创建数据库名 - `MYSQL_USER` / `MYSQL_PASSWORD`:初始化创建的业务账号与密码 - `MYSQL_DATA_DIR`:数据文件路径(建议使用绝对路径) - `MYSQL_LOG_DIR`:日志路径(建议使用绝对路径) ## 数据持久化与“改密码不生效” `MYSQL_ROOT_PASSWORD / MYSQL_USER / MYSQL_PASSWORD / MYSQL_DATABASE` 等环境变量只在数据目录为空时用于初始化。 如果你修改了 `.env` 里的密码但复用了旧的 `MYSQL_DATA_DIR`,MySQL 内部账号密码不会自动更新。你可以选择: - 在 MySQL 内执行 `ALTER USER ... IDENTIFIED BY ...` 修改;或 - 停止服务并清空/更换数据目录后重新 `docker compose up -d`(会重新初始化数据)。