容器内访问宿主机 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