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. 数据、配置、日志全部持久化
相关推荐
TPBoreas6 小时前
MySQL性能优化面试全攻略
mysql·面试·性能优化
xlq223227 小时前
11.表的内外连接,索引
mysql
AllData公司负责人7 小时前
数据库同步平台|AIIData数据中台实现OceanBase、达梦数据库、OpenGauss、人大金仓、Hive、TDengine 一键接入Doris
大数据·数据库·hive·mysql·oceanbase·tdengine
wefg18 小时前
【MySQL】事务
数据库·mysql
黑白极客8 小时前
mysql的高可用性
数据库·mysql
heimeiyingwang11 小时前
【架构实战】MySQL索引优化:从慢查询到毫秒响应
数据库·mysql·架构
渣渣灰飞11 小时前
MySQL 系统学习 第二阶段 第四章:DCL(Data Control Language)第二节:权限管理与角色(Role)
数据库·学习·mysql
Sagittarius_A*12 小时前
Docker:渗透前置容器化核心基础
运维·安全·docker·容器
宠友信息13 小时前
多端即时通讯源码技术实践,Redis路由、MySQL持久化与Socket接入
spring boot·websocket·mysql·uni-app
渣渣灰飞13 小时前
MySQL 系统学习 第四阶段:MySQL 高级 第一节:索引(Index)
数据库·学习·mysql