Ubuntu MySQL如何配置防火墙

493
2025/3/10 9:31:46
栏目: 云计算
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Ubuntu系统中,配置MySQL防火墙主要涉及到两个方面:一是配置Ubuntu系统的防火墙(如UFW),二是配置MySQL服务器本身的访问控制。以下是详细的步骤:

1. 配置Ubuntu系统的防火墙(UFW)

Ubuntu默认使用UFW(Uncomplicated Firewall)作为防火墙管理工具。以下是如何配置UFW以允许MySQL流量:

安装UFW(如果尚未安装)

sudo apt update
sudo apt install ufw

启用UFW

sudo ufw enable

允许MySQL流量

默认情况下,MySQL使用3306端口。你需要允许这个端口的流量。

sudo ufw allow 3306/tcp

查看UFW状态

你可以查看UFW的状态以确保规则已正确应用。

sudo ufw status

你应该会看到类似以下的输出,表明3306端口已允许:

3306/tcp                   ALLOW       Anywhere

2. 配置MySQL服务器本身的访问控制

MySQL服务器本身也有自己的访问控制机制,可以通过修改MySQL配置文件来实现更细粒度的控制。

编辑MySQL配置文件

MySQL的配置文件通常位于/etc/mysql/mysql.conf.d/mysqld.cnf/etc/mysql/my.cnf。你可以使用以下命令编辑该文件:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

配置绑定地址

[mysqld]部分,找到并修改bind-address行,以允许来自特定IP地址的连接。例如,如果你想允许所有IP地址连接,可以将其设置为0.0.0.0

bind-address = 0.0.0.0

如果你只想允许特定IP地址连接,可以将其设置为具体的IP地址,例如:

bind-address = 192.168.1.100

重启MySQL服务

保存并关闭配置文件后,重启MySQL服务以使更改生效:

sudo systemctl restart mysql

配置MySQL用户权限

你还需要在MySQL中配置用户权限,以允许从特定IP地址进行连接。你可以使用以下SQL命令来创建或修改用户权限:

CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
FLUSH PRIVILEGES;

在这个例子中,username是你的MySQL用户名,password是你的密码,%表示允许从任何IP地址连接。如果你只想允许从特定IP地址连接,可以将%替换为具体的IP地址,例如:

CREATE USER 'username'@'192.168.1.100' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'192.168.1.100';
FLUSH PRIVILEGES;

通过以上步骤,你应该能够成功配置Ubuntu系统的防火墙和MySQL服务器的访问控制。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: Windows下用什么连接Ubuntu