Docker部署远程MySQL从端口踩坑到权限全开完整步骤(附避坑指南)
一、部署环境与核心工具
- 服务器:阿里云轻量应用服务器(Ubuntu/CentOS 均可)
- 核心技术:Docker + Docker Compose
- 数据库版本:MySQL 8.0
- 本地连接工具:DataGrip
二、基础部署流程:三步走方案
1. 目录隔离与 Docker Compose 配置
version: '3.8'
services:
new-db:
image: mysql:8.0
container_name: xxx-db # 容器名称
restart: always
environment:
MYSQL_ROOT_PASSWORD: xxx # root用户密码
MYSQL_DATABASE:xxx_db # 自动创建的数据库名
ports:
- "3307:3306" # 关键!宿主机端口:容器端口
volumes:
- ./mysql_data:/var/lib/mysql # 数据持久化挂载核心配置解析:
端口映射 3307:3306:外部连接必须使用宿主机端口(本处如果是3307记得改因为3306就是 MySQL 数据库的“官方出厂默认端口”如果改了宿主机端口记得改)
![]()
持久化挂载:避免容器删除后数据丢失
2. 一键启动服务
docker compose up -d
三、血泪避坑指南:解决“连不上”的三个死理
坑位 1:Connection timed out
症状:
DataGrip 提示 [28000][1045] Connection timed out: connect
原因:
云服务器安全组默认拦截非标准端口(如 3307)
解决方案:
登录云服务器控制台
在安全组中添加入方向规则:
协议:TCP
端口范围:3307
授权对象:0.0.0.0/0(生产环境建议限制 IP)
坑位 2:误把容器名当用户名
症状:
Access denied for user ‘resumer-db’@‘xxx’
原因:
混淆了容器名(xxx-db)与数据库用户名(root)
解决方案:
在连接工具中填写:
User: root
Password: xxx(即 MYSQL_ROOT_PASSWORD 的值)
坑位 3:MySQL 8.0 的权限与加密限制
症状:
Access denied for user ‘root’@‘你的IP’ (using password: YES)
原因:
权限限制:root 默认仅允许 localhost 访问
加密冲突:MySQL 8.0 默认使用 caching_sha2_password,旧客户端不支持
解决方案:
docker exec -it resumer-db mysql -uroot -proot -e \ "ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; \ GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; \ FLUSH PRIVILEGES;"
命令解析:
修改 root 用户加密方式为 mysql_native_password
授权所有 IP(%)访问
立即刷新权限
连不上 → 查云服务器安全组
账号错误 → 确认使用 root 而非容器名
密码错误 → 解决 MySQL 8.0 权限与加密问题
理清这三点,从此告别数据库连接报错!
总结
到此这篇关于Docker部署远程MySQL从端口踩坑到权限全开的文章就介绍到这了,更多相关Docker部署远程MySQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
MySQL 索引从入门到精通示例详解(核心概念、类型与实战优化)
本文详细介绍了MySQL索引的概念、类型及其在实际应用中的优化策略,索引可以显著提升查询效率,但过多的索引会增加写操作的开销,文章涵盖了索引的创建、维护和使用技巧,帮助读者更好地理解和应用索引,以优化数据库性能,感兴趣的朋友跟随小编一起看看吧2026-01-01
MySQL8.0.27安装过程中卡在Initializing Database中并报错的解决
本文主要介绍了MySQL8.0.27安装过程中卡在Initializing Database中并报错的解决,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-05-05
Ubuntu 20.04 安装和配置MySql5.7的详细教程
这篇文章主要介绍了Ubuntu 20.04 安装和配置MySql5.7的相关资料,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-12-12
MySQL中pt-table-checksum实现主从一致性校验的终极方案
pt-table-checksum 凭借低侵入性、高准确性和良好的兼容性,成为 MySQL 主从一致性校验的首选工具,下面就来详细的介绍一下MySQL中pt-table-checksum实现主从一致性校验,感兴趣的可以了解一下2026-04-04


最新评论