如何配置数据库 mysql安全
发布时间 - 2025-08-29 00:00:00 点击率:次为 root 用户设置强密码并创建最小权限的专用用户;2. 禁止 root 远程登录,删除 'root'@'%' 账户并通过 ssh 隧道管理;3. 修改配置文件 bind-address = 127.0.0.1 限制网络监听;4. 使用防火墙(如 ufw)限制访问源 ip;5. 定期更新 mysql 版本并打安全补丁;6. 启用通用日志或审计插件进行行为审计;7. 配置 ssl/tls 加密连接并强制用户使用;8. 删除匿名用户和测试数据库,配置 skip-test-db;9. 遵循最小权限原则,避免授予高危权限;10. 定期加密备份数据并测试恢复流程,持续监控与审查权限以保障数据库安全。
配置 MySQL 数据库的安全性是保障数据完整性和防止未授权访问的关键步骤。以下是一些实用且必要的安全配置建议,适用于大多数生产环境。
1. 修改默认管理员账户和密码
MySQL 安装后默认有一个
root用户,通常没有密码或使用弱密码,这是常见的攻击入口。
建议做法:
- 立即为
root
用户设置强密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPassword123!'; FLUSH PRIVILEGES;
- 避免在生产环境中使用
root
账户进行日常操作。 - 创建具有最小权限的专用用户用于应用程序连接:
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'StrongPassword!'; GRANT SELECT, INSERT, UPDATE ON yourdb.* TO 'appuser'@'localhost';
2. 禁止远程 root 登录
默认情况下,
root用户可能允许从任意主机登录(如
'root'@'%'),这极大增加了被暴力破解的风险。
安全措施:
- 仅
允许 root
从本地登录:-- 删除远程 root 用户 DROP USER 'root'@'%'; DROP USER 'root'@'::1'; -- IPv6
- 如果必须远程管理,使用 SSH 隧道连接,而不是开放 MySQL 的 3306 端口到公网。
3. 关闭不必要的网络暴露
MySQL 默认监听 3306 端口。如果数据库仅本地使用,应禁止网络监听。
修改配置文件(通常是 /etc/mysql/mysql.conf.d/mysqld.cnf
或 /etc/my.cnf
):
[mysqld] bind-address = 127.0.0.1
这表示只接受来自本机的连接。如需远程访问,应通过防火墙限制访问 IP,而不是开放给所有人。
4. 启用防火墙限制访问
即使 MySQL 开放了网络端口,也应通过系统防火墙控制访问源。
例如使用 ufw
(Ubuntu):
# 只允许特定 IP 访问 MySQL sudo ufw allow from 192.168.1.100 to any port 3306 # 或者只允许本地访问 sudo ufw deny 3306
5. 定期更新和打补丁
MySQL 社区和官方会定期发布安全补丁。使用过时版本可能面临已知漏洞的攻击。
建议:
- 使用官方发行版或受支持的发行版(如 Percona Server、MySQL Community Server)。
- 定期检查并升级到稳定版本。
- 订阅 MySQL 安全公告邮件。
6. 启用日志审计(可选但推荐)
记录登录尝试和查询行为有助于事后审计和入侵检测。
配置:
[mysqld] general_log = ON general_log_file = /var/log/mysql/query.log # 或启用更细粒度的审计插件(如 MySQL Enterprise Audit 或 MariaDB Audit Plugin)
注意:开启通用日志会影响性能,建议在调试或高安全需求时使用。
7. 使用加密连接(SSL/TLS)
防止数据在传输过程中被窃听,特别是跨公网的连接。
启用 SSL:
- 检查是否支持 SSL:
SHOW VARIABLES LIKE '%ssl%';
- 配置 MySQL 服务器使用 SSL 证书。
- 强制用户使用加密连接:
GRANT ... REQUIRE SSL;
8. 删除匿名用户和测试数据库
安装时可能创建了匿名账户和
test数据库,这些是常见攻击目标。
清理命令:
-- 删除匿名用户 DROP USER ''@'localhost'; DROP USER ''@'%'; -- 删除测试数据库 DROP DATABASE IF EXISTS test;
同时在配置文件中添加:
[mysqld] skip-test-db
9. 限制数据库用户权限
遵循最小权限原则,避免授予
GRANT ALL或
FILE、
SUPER等高危权限。
避免:
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%';
推荐:
GRANT SELECT, INSERT, UPDATE ON appdb.* TO 'appuser'@'localhost';
10. 定期备份并保护备份文件
即使数据库本身安全,没有备份也可能因勒索攻击或误删导致数据丢失。
建议:
- 使用
mysqldump
或物理备份工具定期备份。 - 加密备份文件并离线存储。
- 测试恢复流程。
基本上就这些核心措施。MySQL 安全不是一劳永逸的,需要持续监控、更新和审查权限。不复杂,但容易忽略细节。
# php
# java
# mysql
# word
# ubuntu
# 工具
# 数据丢失
# 数据库
# ssl
# ssh
# 新和
# 配置文件
# 只允许
# 而不是
# 备份文件
# 这是
# 离线
# 发行版
# 适用于
# 可选
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
使用Dockerfile构建java web环境
如何获取PHP WAP自助建站系统源码?
如何在腾讯云免费申请建站?
进行网站优化必须要坚持的四大原则
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
如何做网站制作流程,*游戏网站怎么搭建?
如何在万网主机上快速搭建网站?
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
如何自定义建站之星网站的导航菜单样式?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
网站制作免费,什么网站能看正片电影?
如何在阿里云香港服务器快速搭建网站?
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
Laravel如何实现模型的全局作用域?(Global Scope示例)
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Laravel怎么在Controller之外的地方验证数据
Laravel如何使用Eloquent进行子查询
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
JS实现鼠标移上去显示图片或微信二维码
如何在建站主机中优化服务器配置?
如何快速启动建站代理加盟业务?
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
,交易猫的商品怎么发布到网站上去?
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
php结合redis实现高并发下的抢购、秒杀功能的实例
如何基于PHP生成高效IDC网络公司建站源码?
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
Laravel如何处理CORS跨域请求?(配置示例)
Python正则表达式进阶教程_复杂匹配与分组替换解析
JavaScript Ajax实现异步通信
如何制作一个表白网站视频,关于勇敢表白的小标题?
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
如何在Windows虚拟主机上快速搭建网站?
英语简历制作免费网站推荐,如何将简历翻译成英文?
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
网站建设保证美观性,需要考虑的几点问题!
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
大学网站设计制作软件有哪些,如何将网站制作成自己app?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
nodejs redis 发布订阅机制封装实现方法及实例代码
如何在建站之星网店版论坛获取技术支持?
Laravel如何创建自定义Facades?(详细步骤)
魔毅自助建站系统:模板定制与SEO优化一键生成指南
浅谈javascript alert和confirm的美化
上一篇:软考信息系统项目管理
上一篇:软考信息系统项目管理


允许