CentOs中iptables配置允许mysql远程访问
封面图
•
2025-10-22
•
MySQL
298
0
0
0
在 CentOS 系统中,如果你想要允许 MySQL 的远程访问,除了要配置 MySQL 本身(如 `my.cnf` 或 `my.ini` 文件),还需要配置防火墙(iptables)以允许外部连接到 MySQL 的默认端口(通常是 **3306**)。以下是详细步骤: --- ## ✅ 步骤一:允许 MySQL 端口通过 iptables ### 1. 编辑 iptables 配置文件 ```bash sudo vi /etc/sysconfig/iptables ``` ### 2. 在规则中添加以下内容(通常在 `INPUT` 链中): ```bash -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT ``` > 如果你使用的是 **firewalld**(CentOS 7+ 默认),请参考下面的步骤。 --- ## ✅ 步骤二:重启 iptables 服务 ```bash sudo service iptables restart ``` 或者,在 CentOS 7 及以上系统中,使用 `firewalld`: --- ## 🔧 如果使用 firewalld(推荐) ### 1. 开放 3306 端口 ```bash sudo firewall-cmd --permanent --add-port=3306/tcp ``` ### 2. 重新加载 firewalld 配置 ```bash sudo firewall-cmd --reload ``` --- ## ✅ 步骤三:配置 MySQL 允许远程访问 ### 1. 修改 MySQL 配置文件(`/etc/my.cnf` 或 `/etc/mysql/my.cnf`) 找到并修改以下行(如果存在): ```ini bind-address = 127.0.0.1 ``` 将其改为: ```ini bind-address = 0.0.0.0 ``` > 这表示 MySQL 监听所有网络接口。 ### 2. 重启 MySQL 服务 ```bash sudo systemctl restart mysqld ``` --- ## ✅ 步骤四:授权远程用户访问 MySQL 登录 MySQL: ```bash mysql -u root -p ``` 然后执行以下 SQL 命令: ```sql GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` - `'your_user'` 是你要允许远程访问的用户名。 - `'%'` 表示允许从任何 IP 地址访问。 - 如果你只允许特定 IP,可以替换为 `'192.168.1.100'`。 --- ## 🛡️ 注意事项 - **安全建议**:不要随意使用 `%`,尽量限制 IP 范围。 - **MySQL 用户权限**:确保远程用户有正确的权限。 - **防火墙规则**:确保 `iptables` 或 `firewalld` 已正确配置。 --- ## ✅ 检查端口是否开放 你可以使用以下命令检查 3306 端口是否监听: ```bash netstat -tuln | grep 3306 ``` 或者: ```bash ss -tuln | grep 3306 ``` --- 如有需要,我也可以帮你写一个脚本自动配置这些设置。需要的话告诉我!
上一篇:
Linux下如何关闭mysql的3306端口本地访问
下一篇:
Centos中彻底删除Mysql(rpm、yum安装的情况)
标题录入,一次不能超过6条
返回顶部
留言
留言
评论