在 MySQL 中配置数据文件权限的核心是确保数据库文件只能被授权用户和进程访问,防止未授权读写。重点在于操作系统层面的文件权限设置与 MySQL 服务运行账户的合理配置。
确认 MySQL 运行用户
MySQL 服务通常以特定系统用户运行(如 mysql),该用户需要对数据目录有完整访问权限。
查看当前 MySQL 进程运行用户:ps aux | grep mysqld找到类似
mysql 1234 ... mysqld的行,确认用户名为 mysql 或其他指定用户
确保数据目录归属正确:
chown -R mysql:mysql /var/lib/mysql(路径根据实际调整) 这保证 MySQL 用户拥有读写权限
设置数据目录权限
数据目录和文件不应开放给其他用户访问,避免信息泄露或篡改。
目录权限建议设为 750:chmod -R 750 /var/lib/mysql关键文件如 ibdata1、.frm、.ibd 等应为 640:
find /var/lib/mysql -type f -exec chmod 640 {} \;
确保上级目录(如 /var/lib)也限制访问,防止遍历
保护配置文件与日志文件
除了数据文件,配置文件(my.cnf)和日志文件(如 error log、slow log)也需权限控制。
配置文件权限设为 640:chmod 640 /etc/my.cnf属主改为 mysql 用户:
chown root:mysql /etc/my.cnf日志文件同样设置为 640 并归属 mysql 用户
启用安全加固选项
MySQL 自身配置也能增强文件安全。
在 my.cnf 中添加:innodb_data_home_dir和
datadir明确路径 使用
secure_file_priv限制 LOAD DATA 和 SELECT ... INTO OUTFILE 的路径 设置
secure_file_priv=/tmp可减少风险暴露
基本上就这些。关键是操作系统权限与 MySQL 配置协同,保持最小权限原则,定期检查文件归属和模式是否被意外更改。
