Products
96SEO 2025-07-15 00:35 0
MySQL 是一个流行的开源数据库管理系统,被广泛应用于各种场景。只是由于MySQL的平安漏洞,使得数据库轻巧松受到打。所以呢,确保MySQL数据库的平安配置至关关键。本文将详细介绍怎么在Linux周围下为MySQL设置更平安的配置。
刚安装优良的MySQL包含一个含空密码的root帐户和一个匿名帐户,这是很巨大的平安隐患。对于一些关键的应用我们应将平安性尽兴许搞优良, 在这里应把匿名帐户删除、root帐户设置密码,可用如下命令进行:
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;
删除匿名用户以别让未经授权的访问。
use mysql;
delete from user where user='' and host='localhost';
FLUSH PRIVILEGES;
避免用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;
确保全部数据库用户都用有力密码,并定期更换密码。
ALTER USER 'username'@'localhost' IDENTIFIED BY 'NewStrongPassword!';
FLUSH PRIVILEGES;
默认情况下MySQL允许root用户从随便哪个IP地址远程登录。为了平安起见,得禁用远程root登录。
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
根据实际需求,管束用户的权限。比方说只允许用户访问特定的数据库和表。
GRANT SELECT, INSERT, UPDATE ON mydatabase.* TO 'newuser'@'localhost';
FLUSH PRIVILEGES;
为了护着数据传输过程中的平安,能配置MySQL用SSL/TLS加密连接。
sudo nano /etc/mysql/my.cnf
确保以下行未被注释:
ssl-ca=/path/to/ca-ssl-cert=/path/to/server-ssl-key=/path/to/server-
定期备份数据库以别让数据丢失。
sudo systemctl restart mysql
启用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
修改MySQL数据目录权限,以确保数据平安。
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 750 /var/lib/mysql
为了别让恶意用户用Load DATA LOCAL INFILE功能来上传恶意数据,能禁用该功能。
sudo nano /etc/mysql/my.cnf
secure-file-priv = ""
默认情况下MySQL用3306端口。为了许多些平安性,能修改为其他端口。
sudo nano /etc/mysql/my.cnf
找到port
行并修改为其他端口, 比方说:
port = 3307
然后沉启MySQL服务:
sudo systemctl restart mysql
配置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的平安性。想起来定期检查和更新鲜平安设置,以应对新鲜的平安吓唬。
Demand feedback