Centos7.6 Docker安装MySQL8

🔥 一条命令直接安装 + 启动 MySQL 8

Docker 安装 MySQL 8 默认是 区分大小写的!

不手动配置,Linux 上默认:lower_case_table_names=0

bash 复制代码
docker run -d \
  --restart=always \
  --name mysql8 \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -v /mydata/mysql8/conf:/etc/mysql/conf.d \
  -v /mydata/mysql8/data:/var/lib/mysql \
  mysql:8.0 \
  --lower_case_table_names=1

命令解释

  • mysql:8.0 → 安装 MySQL 8 稳定版
  • MYSQL_ROOT_PASSWORD=123456 → root 密码(可自己改)
  • 3306:3306 → 端口映射
  • -v → 数据持久化(删容器数据不丢)
  • --restart=always → 开机自启
  • --lower_case_table_names → 1不区分大小写(Windows 模式,项目通用),0区分大小写(Linux 默认,坑死开发者)

✅ 安装成功检查

bash 复制代码
docker ps

🔥 允许远程连接(必须执行!)

进入容器

bash 复制代码
docker exec -it mysql8 mysql -uroot -p123456

执行授权(复制直接运行)

sql 复制代码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES;

退出

sql 复制代码
exit;

🔐 云服务器必须开放 3306 端口

去云服务器后台 → 安全组 → 放行 3306 端口

否则 Navicat 连不上!

⚠️ 重点踩坑!!!

安装时未指定--lower_case_table_names忽略大小写,导致删除容器重新安装

bash 复制代码
# 删除旧容器
docker rm -f mysql8
# 删除旧数据(必须删!)
rm -rf /mydata/mysql8

以上两条命令执行完成后,重新走上面的安装配置流程!

相关推荐
我是koten6 分钟前
【运维杂谈】K8s遇到Terminating的名称空间删除不了怎么办?(解决方案亲测有效)
linux·运维·服务器·云原生·kubernetes·k8s·名称空间
修己xj8 小时前
服务器无法解析域名?一次 DNS 配置缺失的排查与修复
运维
xbzb13 小时前
自定义 yum 软件源:Linux 上 createrepo,Windows 上纯 Python 也能造
linux·运维·windows·python·yum·createrepo
Android系统攻城狮13 小时前
Linux FFmpeg深度解析之avio_open调用流程与实战(三十八)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
我不会起名字32214 小时前
K8s Pod 反复重启 CrashLoopBackOff:从 exit code 到根因的 5 步排查
云原生·容器·kubernetes·k8s
瑞克-桑切斯15 小时前
ERP 企业生产管理系统部署手册
运维·docker·云原生·容器·eureka
江屿风15 小时前
【Git-组件】【Git入门:从文档灾难到版本掌控】流食般投喂
运维·笔记·git·组件·版本控制
我不会起名字32215 小时前
K8s 节点磁盘打满导致 Pod 被驱逐:4 类占用与回收顺序
运维·kubernetes·k8s·diskpressure·evicted
雪落漂泊15 小时前
Linux进程(五):进程地址空间篇
linux·运维·服务器
瑞克-桑切斯16 小时前
docker mail商城
运维·docker·容器