• 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 或其他客户端连接测试。
  • 相关阅读:
    【C++】智能指针
    【若依框架RuoYi-Vue-Plus 图片回显不显示问题,OSS文件上传或者本地上传】
    Web前端:应该使用ReactJS进行Web开发?
    TCP的三次握手和四次挥手
    C++ 性能优化指南 KurtGuntheroth 第5章 优化算法 摘录
    html css实战之学成在线项目
    设计模式之观察者模式(十四)
    【C++】内存管理——我要new一个对象
    PDF转成二维码分享
    【Android-Jetpack进阶】6、WorkManager 后台线程、一次性、周期性、任务链的 Work
  • 原文地址:https://blog.csdn.net/weixin_45631123/article/details/139503590