容器内访问宿主机 MySQL 的完整指南

学习笔记作者:admin日期:2025-06-15点击:13

摘要:介绍如何在容器中通过 IP 访问宿主机 MySQL,包括网络配置、权限设置及常见问题解决。

容器内访问宿主机 MySQL 的完整指南

      本文档介绍如何在容器中通过 IP 地址访问宿主机上的 MySQL 数据库,同时提供详细的网络配置、权限设置以及常见问题解决方案。

一、获取宿主机 IP 地址

      在容器中可以通过以下方法获取宿主机 IP:

ip route show default | awk '{print $3}'

      例如,默认网关 IP 通常是 172.17.0.1

二、确保 MySQL 配置正确

      在宿主机上编辑 MySQL 配置文件,确保 MySQL 监听所有 IP:

[mysqld]
bind-address = 0.0.0.0

      然后重启 MySQL 服务:

systemctl restart mysql

三、开放防火墙端口

      在宿主机上放行 MySQL 端口:

sudo ufw allow 3306/tcp

四、创建并授权 MySQL 用户

      使用 root 用户登录 MySQL,并执行以下 SQL 语句:

CREATE DATABASE IF NOT EXISTS waline;
CREATE USER 'waline'@'%' IDENTIFIED BY 'waline';
GRANT ALL PRIVILEGES ON waline.* TO 'waline'@'%';
FLUSH PRIVILEGES;

五、校验用户权限

      校验用户权限的 SQL 语句:

SHOW GRANTS FOR 'waline'@'%';

      确保输出中包含 ALL PRIVILEGES ON waline.*

六、常见问题

  • 容器中找不到 ip 命令:安装 iproute2 包。
  • MySQL 拒绝访问:检查 bind-address 和防火墙规则。
  • 权限不足:重新授权用户。

七、关键词

      MySQL, 容器, 宿主机, IP 地址, 权限设置, Docker

上一篇      下一篇