运维

运维

Products

当前位置:首页 > 运维 >

如何在Linux环境下为MySQL设置更安全的配置?

96SEO 2025-07-15 00:35 0


MySQL 是一个流行的开源数据库管理系统,被广泛应用于各种场景。只是由于MySQL的平安漏洞,使得数据库轻巧松受到打。所以呢,确保MySQL数据库的平安配置至关关键。本文将详细介绍怎么在Linux周围下为MySQL设置更平安的配置。

1. 修改MySQL管理员帐户的密码

刚安装优良的MySQL包含一个含空密码的root帐户和一个匿名帐户,这是很巨大的平安隐患。对于一些关键的应用我们应将平安性尽兴许搞优良, 在这里应把匿名帐户删除、root帐户设置密码,可用如下命令进行:

Linux环境下MySQL如何进行安全设置
mysql -u root -p
use mysql;
delete from user where user='';
delete from user where user='';
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword!';
FLUSH PRIVILEGES;

2. 删除匿名用户

删除匿名用户以别让未经授权的访问。

use mysql;
delete from user where user='' and host='localhost';
FLUSH PRIVILEGES;

3. 创建专用数据库用户

避免用root用户进行日常操作,创建一个专用的数据库用户并授予少许不了的权限。

CREATE USER 'username'@'localhost' IDENTIFIED BY 'yourpass';
GRANT SELECT,INSERT,DELETE,UPDATE,DROP ON db_name.* TO 'username'@'localhost' IDENTIFIED BY 'yourpass';
FLUSH PRIVILEGES;

4. 用有力密码

确保全部数据库用户都用有力密码,并定期更换密码。

ALTER USER 'username'@'localhost' IDENTIFIED BY 'NewStrongPassword!';
FLUSH PRIVILEGES;

5. 禁用远程root登录

默认情况下MySQL允许root用户从随便哪个IP地址远程登录。为了平安起见,得禁用远程root登录。

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

6. 管束用户权限

根据实际需求,管束用户的权限。比方说只允许用户访问特定的数据库和表。

GRANT SELECT, INSERT, UPDATE ON mydatabase.* TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

7. 用SSL/TLS加密连接

为了护着数据传输过程中的平安,能配置MySQL用SSL/TLS加密连接。

sudo nano /etc/mysql/my.cnf

确保以下行未被注释:

ssl-ca=/path/to/ca-ssl-cert=/path/to/server-ssl-key=/path/to/server-

8. 定期备份数据库

定期备份数据库以别让数据丢失。

sudo systemctl restart mysql

9. 监控和日志记录

启用MySQL的日志记录功能,监控数据库活动。

sudo nano /etc/mysql/my.cnf

添加或修改以下行:

general_log = 1
general_log_file = /var/log/mysql/
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-query.log
slow-long_query_time = 2

10. 修改MySQL数据目录权限

修改MySQL数据目录权限,以确保数据平安。

sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 750 /var/lib/mysql

11. 禁用Load DATA LOCAL INFILE功能

为了别让恶意用户用Load DATA LOCAL INFILE功能来上传恶意数据,能禁用该功能。

sudo nano /etc/mysql/my.cnf
secure-file-priv = ""

12. 修改MySQL端口

默认情况下MySQL用3306端口。为了许多些平安性,能修改为其他端口。

sudo nano /etc/mysql/my.cnf

找到port行并修改为其他端口, 比方说:

port = 3307

然后沉启MySQL服务:

sudo systemctl restart mysql

13. 设置防火墙规则

配置Linux防火墙规则,仅允许来自授权IP的MySQL连接。

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3307" accept'
sudo firewall-cmd --reload

通过以上步骤,能显著搞优良Linux周围下MySQL的平安性。想起来定期检查和更新鲜平安设置,以应对新鲜的平安吓唬。


标签: Linux

提交需求或反馈

Demand feedback