为 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 访问 MySQLsudo ufw allow from 192.168.1.100 to any port 3306# 或者只允许本地访问sudo ufw deny 3306
5. 定期更新和打补丁
MySQL 社区和官方会定期发布安全补丁。使用过时版本可能面临已知漏洞的攻击。
建议:
使用官方发行版或受支持的发行版(如 Percona Server、MySQL Community Server)。定期检查并升级到稳定版本。订阅 MySQL 安全公告邮件。
6. 启用日志审计(可选但推荐)
记录登录尝试和查询行为有助于事后审计和入侵检测。
某地板超炫企业网站1.1
1、演示:以截图为准 2、程序说明 程序试用后台:http://你的域名/admin/login.asp 后台登陆帐号:admin 密码:admin123 说明: 这个是基于asp+access的企业网站源码,数据库已设有有防下载,网站更安全 要修改网站,自定义你自己要的页面,和美化页面都是你自己完成,网站源码程序完整,后台功能强大。 调试运行环境:要安装IIS服务器(IIS的安装和配置,安装好
0 查看详情
配置:
[mysqld]general_log = ONgeneral_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 安全不是一劳永逸的,需要持续监控、更新和审查权限。不复杂,但容易忽略细节。
以上就是如何配置数据库 mysql安全的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/806580.html
微信扫一扫
支付宝扫一扫