Docker Compose 安装 MySQL 8

编写docker-compose.yml( 外部可访问)

yaml 复制代码
services:
  mysql:
    image: mysql:8.0
    container_name: mysql8
    restart: always  # 服务器/MySQL挂了自动重启
    environment:
      MYSQL_ROOT_PASSWORD: Rt173465.     # ROOT账户密码
      MYSQL_ROOT_HOST: '%'               # 允许外部连接 root
      TZ: Asia/Shanghai                  # 时区
      MYSQL_CHARSET: utf8mb4             # 字符集
      MYSQL_COLLATION: utf8mb4_unicode_ci
    ports:
      - "3306:3306"  # 端口映射
    # 推荐写法:相对路径,自动在当前目录创建 data, conf, logs
    volumes:
      - ./data:/var/lib/mysql
      - ./conf:/etc/mysql/conf.d
      - ./logs:/var/log/mysql
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_unicode_ci
      --ngram_token_size=2  # 设置 ngram 分词长度为 2(中文双字词)
      --innodb_ft_min_token_size=2  # 支持2字符的查询(解决「读了」长度不足问题)
      --innodb_ft_server_stopword_table = '' # 禁用停用词(避免「读了」被过滤)

1. 进入目录

bash 复制代码
cd /home/lishengli/docker-compose/mysql

2. 启动

bash 复制代码
docker-compose up -d

连接信息(外部工具直接用)

  • 主机:你的服务器IP
  • 端口:3306
  • 用户名:root
  • 密码:root123456(你自己改)
  • 权限:外部任何IP都能连

常用命令

bash 复制代码
# 启动
docker-compose up -d

# 停止
docker-compose stop

# 重启
docker-compose restart

# 删除容器(数据不丢)
docker-compose down

# 查看日志
docker-compose logs -f mysql

总结

  1. 目录完全匹配你的路径
  2. root 账号支持外部连接
  3. mysql:8.0 = 最新稳定版
  4. 数据、配置、日志全部持久化
相关推荐
武子康9 小时前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
云技纵横2 天前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
沉默王二2 天前
面试官:RAG 不用向量数据库,用 MySQL 硬扛?我:100 万向量不是很轻松?
mysql·面试·ai编程
小猿姐2 天前
MySQL Top 10 热点问题 AI 运维实战:从内核诊断到云原生运维
mysql·云原生·aiops
云技纵横3 天前
Gap Lock 死锁实战:5 秒在本地复现 MySQL 间隙锁死锁
后端·mysql
无响应de神3 天前
三、用户与权限管理
数据库·mysql
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
ApacheSeaTunnel3 天前
实战演示 | 基于 Apache SeaTunnel 与 Apache DolphinScheduler 实现 MySQL 到 Doris 离线定时增量同步
大数据·mysql·开源·doris·数据集成·seatunnel·数据同步
DARLING Zero two♡3 天前
【MySQL数据库】数据类型与表约束
数据库·mysql