当前位置: 代码网 > it编程>数据库>Mysql > Docker部署远程MySQL从端口踩坑到权限全开完整步骤(附避坑指南)

Docker部署远程MySQL从端口踩坑到权限全开完整步骤(附避坑指南)

2026年04月20日 Mysql 我要评论
一、部署环境与核心工具服务器:阿里云轻量应用服务器(ubuntu/centos 均可)核心技术:docker + docker compose数据库版本:mysql 8.0本地连接工具:datagri

一、部署环境与核心工具

  • 服务器:阿里云轻量应用服务器(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内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com