发布于2026-06-07 阅读(0)
扫一扫,手机访问
MySQL 无疑是开源数据库领域的标杆,而它的分支 MariaDB 近年来增长势头也相当强劲。不过,装好 MySQL 之后,默认配置可谈不上安全——确保数据库安全,是每个 DBA 的基本功。这么做不仅能保护数据库本身,也能提升整个 Linux 系统的安全水平,毕竟攻击者总是无孔不入,数据库更是他们眼中的“肥肉”。暴力破解 root 密码,就是最常见的手段之一。
下面这 12 条最佳实践,都是经过实战检验的硬核内容,照着做就能让你的 MySQL/MariaDB 站稳脚跟。
安装完 MySQL 后第一件该做的事是什么?运行安全安装脚本。它能帮你解决几个关键问题:
# mysql_secure_installation
运行上述命令后,设置 root 密码,并通过输入 [Yes/Y] 和回车键回答一系列问题。
安全安装 MySQL 的界面
这条配置会限制远程机器访问,告诉 MySQL 只接受来自本地主机的连接。改起来很简单,编辑主配置文件就行:
# vi /etc/my.cnf [RHEL/CentOS] # vi /etc/mysql/my.conf [Debian/Ubuntu] # vi /etc/mysql/mysql.conf.d/mysqld.cnf [Debian/Ubuntu]
在 [mysqld] 部分加上这一行:
bind-address = 127.0.0.1
为提升安全性,最好禁用 local_infile。在 [mysqld] 部分加入下面这行,防止 MySQL 直接访问底层文件系统:
local-infile=0
3306 是默认的 TCP 监听端口,改掉它能让很多自动化扫描工具失效。在 [mysqld] 里设置:
Port=5000
日志是了解服务运行状况的最佳方式之一,一旦遭到攻击,也能从日志里找到入侵痕迹。在 [mysqld] 部分添加:
log=/var/log/mysql.log
确保所有 MySQL 服务文件和数据路径的权限都恰当。比如 /etc/my.cnf 只能由 root 修改,防止其他用户篡改数据库配置:
# chmod 644 /etc/my.cnf
你在 MySQL shell 里执行的所有命令都会被保存在 ~/.mysql_history 中。这非常危险——你创建过哪些用户、输入过什么密码,全都会记录下来。
# cat /dev/null > ~/.mysql_history
终端里输入的所有命令都会被 shell 的历史文件记录(比如 bash 的 ~/.bash_history)。攻击者一旦拿到这个文件,就能看到你输入的密码。强烈不建议像下面这样直接输密码:
# mysql -u root -ppassword_

使用密码连接 MySQL
查看命令行历史,就能看到之前输入的密码:
# history

查看命令行输入历史
正确的连接方式是这样的:
# mysql -u root -p Enter password:
每个在服务器上运行的应用,只分配一个与该应用相关的数据库用户。比如你有一个 WordPress 站点,就像这样创建专用用户:
# mysql -u root -p MariaDB [(none)]> CREATE DATABASE osclass_db; MariaDB [(none)]> CREATE USER 'osclassdmin'@'localhost' IDENTIFIED BY 'osclass@dmin%!2'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON osclass_db.* TO 'osclassdmin'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> exit
记得,不再使用的数据库用户要及时删除。
MySQL 自带不少安全插件,比如验证客户端连接、密码强度校验、敏感信息加密存储等,这些在免费版本中就能用。更多信息可参考官方文档:https://dev.mysql.com/doc/refman/5.7/en/security-plugins.html
密码定期更换是信息安全的基本要求,具体周期由内部安全策略决定。定期换密码能有效阻止那些长期蹲点、试图猜出密码的攻击者:
MariaDB [(none)]> USE mysql;
MariaDB [(none)]> UPDATE user SET password=PASSWORD('YourPasswordHere') WHERE User='root' AND Host = 'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
强烈建议从官方仓库定期更新 MySQL/MariaDB 包,以获取最新的安全补丁和错误修复。操作系统默认仓库里的版本往往比较老旧。
# yum update # apt update
对 MySQL/MariaDB 做任何修改之后,别忘了重启服务:
# systemctl restart mariadb # RHEL/CentOS # systemctl restart mysql # Debian/Ubuntu
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9