mysql安装完成后如何修改默认配置提高安全性

来源:苹果APP网作者:深圳程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《mysql安装完成后如何修改默认配置提高安全性》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《mysql安装完成后如何修改默认配置提高安全性》有用,将其分享出去将是对创作者最好的鼓励。

mysql作为常用的关系型数据库,安装完成后默认的初始配置往往没有开启安全限制,存在不少可被利用的漏洞,修改默认配置是提升数据库安全性的基础操作,能有效避免多数常见的入侵风险。

mysql安装完成后如何修改默认配置提高安全性

需要修改的核心安全配置项

1. 设置root用户密码

默认安装的mysql可能允许root用户无密码登录,这是最大的安全隐患,需要第一时间设置强密码。如果是刚安装完成还未做过任何配置,可以通过以下命令登录后修改密码:

-- 登录mysql,若未设置密码直接回车即可
mysql -u root -p

-- 切换到mysql系统库
USE mysql;

-- 修改root用户密码,注意mysql不同版本密码字段可能不同,5.7及以上版本为authentication_string
UPDATE user SET authentication_string=PASSWORD('Your_Strong_Password_123') WHERE User='root';

-- 刷新权限使配置生效
FLUSH PRIVILEGES;

2. 禁止root用户远程登录

默认root用户可能允许从任意主机远程连接,建议仅保留本地登录权限,避免root账号被暴力破解后直接控制整个数据库。修改方式如下:

-- 登录mysql后执行,将root用户的host改为localhost,仅允许本地登录
UPDATE user SET Host='localhost' WHERE User='root' AND Host='%';

-- 刷新权限
FLUSH PRIVILEGES;

3. 删除匿名用户和测试数据库

默认安装会创建匿名用户和名为test的测试数据库,匿名用户无需密码即可登录,测试数据库默认对所有用户开放权限,都需要删除:

-- 删除匿名用户,匿名用户的User字段为空
DELETE FROM user WHERE User='';

-- 删除test测试数据库
DROP DATABASE IF EXISTS test;

-- 刷新权限
FLUSH PRIVILEGES;

4. 修改配置文件mysqld段的安全参数

除了用户权限相关的配置,还需要修改mysql的配置文件(linux一般在/etc/my.cnf,windows一般在my.ini),在[mysqld]段添加或修改以下参数:

[mysqld]
# 禁止加载本地数据文件,避免通过LOAD DATA LOCAL INFILE读取服务器文件
local-infile=0

# 关闭符号链接支持,防止通过符号链接访问系统文件
symbolic-links=0

# 限制连接数,避免被恶意请求打满连接
max_connections=100

# 错误日志路径,便于排查异常登录等问题
log-error=/var/log/mysql/error.log

# 关闭远程访问,仅监听本地回环地址
bind-address=127.0.0.1

配置修改后的验证方法

完成上述配置修改后,需要逐一验证是否生效:

  • 尝试用空密码登录root,应该提示密码错误无法登录
  • 从其他服务器尝试远程连接当前mysql的root用户,应该提示连接被拒绝
  • 查看mysql用户表,确认已经没有匿名用户,test数据库已经不存在
  • 查看mysql进程监听的地址,确认仅监听127.0.0.1而不是0.0.0.0

注意事项

修改配置文件后需要重启mysql服务才能生效,linux系统重启命令为systemctl restart mysqld,windows系统可以在服务管理器中重启mysql服务。如果是生产环境,修改配置前建议先备份原有的配置文件和用户权限表,避免操作失误导致数据库无法访问。另外密码设置要符合复杂度要求,包含大小写字母、数字和特殊字符,长度不低于8位。

mysql数据库安全配置文件修改权限管理修改时间:2026-07-10 17:33:20

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。