编写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
总结
- 目录完全匹配你的路径
- root 账号支持外部连接
- mysql:8.0 = 最新稳定版
- 数据、配置、日志全部持久化