当前位置: 首页 > news >正文

Docker 中运行的 MySQL 数据库与 Docker 外部的管理系统连接

步骤 1:运行 MySQL 容器

首先,确保你的 Docker 容器中运行了 MySQL 数据库。

docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -d -p 3306:3306 mysql:latest
  • --name mysql-container 为容器命名。
  • -e MYSQL_ROOT_PASSWORD=my-secret-pw 设置 MySQL 的 root 用户密码。
  • -d 后台运行容器。
  • -p 3306:3306 将容器的 3306 端口映射到主机的 3306 端口。

步骤 2:检查 MySQL 容器状态

确保 MySQL 容器正在运行。

docker ps -f name=mysql-container

步骤 3:配置 MySQL 允许外部访问

默认情况下,MySQL 只允许本地访问。你需要修改 MySQL 的配置以允许外部连接。

  • 进入容器:

    docker exec -it mysql-container bash
    
  • 登录 MySQL:

    mysql -u root -p
    
  • 修改 root 用户的权限,允许外部连接:

    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'my-secret-pw';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    

步骤 4:配置 MySQL 监听所有 IP 地址

编辑 MySQL 配置文件,确保 MySQL 监听所有 IP 地址。

  • 在容器中打开 MySQL 配置文件:

    vi /etc/mysql/my.cnf
    
  • 找到 [mysqld] 部分,添加或修改以下内容:

    bind-address = 0.0.0.0
    
  • 重新启动 MySQL 服务:

    service mysql restart
    

步骤 5:从 Docker 外部连接 MySQL

现在你可以从 Docker 外部使用管理系统(如 MySQL Workbench)连接 MySQL 数据库。

  • 主机:localhost 或 Docker 主机的 IP 地址
  • 端口:3306
  • 用户名:root
  • 密码:my-secret-pw

验证步骤可行性

  1. 运行 MySQL 容器:通过 docker ps 确认容器运行正常。
  2. 配置 MySQL 允许外部访问:通过 mysql -u root -p 连接 MySQL,执行 SHOW GRANTS FOR 'root'@'%'; 确认权限修改成功。
  3. 配置 MySQL 监听所有 IP 地址:通过 netstat -tulnp | grep mysql 确认 MySQL 正在监听 0.0.0.0:3306
  4. 从管理系统连接 MySQL:使用 MySQL Workbench 或其他客户端连接测试。

相关文章:

  • blender
  • springboot 3 oauth2认证this.authorizationService.save(authorization)生成token报错异常
  • 常见汇编指令
  • 【数据结构】排序——插入排序,选择排序
  • [Cloud Networking] Layer 2
  • NineData云原生智能数据管理平台新功能发布|2024年5月版
  • 联合体和枚举<C语言>
  • 卡尔曼滤波器例子
  • MathType7.8永久破解版下载 让数学学习变得简单有趣!
  • 为什么Kubernetes(K8S)弃用Docker:深度解析与未来展望
  • 微信小程序学习笔记(4)
  • 【AI 高效问答系统】机器阅读理解实战内容
  • Vue3+TS 开发 Google 浏览器插件模板
  • 计算机网络 —— 网络层 (路由协议)
  • 计算机网络 ——网络层(IPv4地址)
  • 【css3】浏览器内核及其兼容性
  • angular组件开发
  • C++类的相互关联
  • FineReport中如何实现自动滚屏效果
  • flutter的key在widget list的作用以及必要性
  • JavaScript对象详解
  • MD5加密原理解析及OC版原理实现
  • Redash本地开发环境搭建
  • Spring声明式事务管理之一:五大属性分析
  • Vim Clutch | 面向脚踏板编程……
  • 汉诺塔算法
  • 前端代码风格自动化系列(二)之Commitlint
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 责任链模式的两种实现
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • #laravel 通过手动安装依赖PHPExcel#
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (1)(1.11) SiK Radio v2(一)
  • (初研) Sentence-embedding fine-tune notebook
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • .NET 服务 ServiceController
  • .Net 知识杂记
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @FeignClient注解,fallback和fallbackFactory
  • @javax.ws.rs Webservice注解
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • @开发者,一文搞懂什么是 C# 计时器!
  • [.net]官方水晶报表的使用以演示下载
  • [].slice.call()将类数组转化为真正的数组
  • [3D基础]理解计算机3D图形学中的坐标系变换
  • [Android View] 可绘制形状 (Shape Xml)
  • [bzoj4240] 有趣的家庭菜园
  • [C#]使用深度学习算法opencvsharp部署RecRecNet广角图像畸变矫正校正摄像广角镜头畸变图像
  • [Contest20180313]灵大会议
  • [CSS]盒子模型
  • [Docker]十一.Docker Swarm集群raft算法,Docker Swarm Web管理工具