MySQL 运行权限主要指 MySQL 服务进程(
mysqld)启动时所使用的操作系统用户身份,以及该用户对数据目录、配置文件、日志文件等关键路径的访问权限。配置不当会导致服务无法启动、数据损坏或安全风险。
MySQL 服务应使用专用低权限用户运行
MySQL 不应以
root用户运行。推荐创建独立系统用户(如
mysql),仅赋予其操作数据库必需的最小权限。 检查当前运行用户:
ps -ef | grep mysqld,确认主进程 UID 是否为
mysql若使用 systemd 启动,查看
/usr/lib/systemd/system/mysqld.service或
/etc/systemd/system/mysqld.service中的
User=和
Group=设置(通常为
User=mysql) 安装时多数发行版(如 CentOS/RHEL 的 MySQL 官方包、Ubuntu 的
mysql-server)已自动创建
mysql用户并配置好,无需手动干预
数据目录权限必须严格限制
MySQL 数据目录(默认如
/var/lib/mysql)必须仅允许
mysql用户读写,禁止其他用户访问。 正确权限设置:
chown -R mysql:mysql /var/lib/mysql,然后
chmod -R 750 /var/lib/mysql特别注意子目录(如数据库名目录)和文件(如
ibdata1、
ib_logfile*、表文件)也需继承相同属主和合理权限 避免执行
chmod 777或开放 group/o 写权限,否则可能触发 MySQL 启动保护机制而拒绝启动
配置文件与日志路径需可被 mysql 用户访问
MySQL 需要读取配置文件(如
/etc/my.cnf或
/etc/mysql/my.cnf),并写入错误日志、慢查询日志等。这些路径的权限也要匹配。 配置文件建议权限:
644,属主可为
root(因含敏感配置),但确保
mysql用户有读权限 日志目录(如
/var/log/mysql/)应属主
mysql:mysql,权限
750;日志文件本身通常为
640若自定义了
pid-file、
socket路径,对应目录也需确保
mysql用户可创建和写入
常见权限问题排查方法
服务启动失败时,优先检查权限相关错误线索:
查看错误日志(路径由log-error配置项指定,常见于
/var/log/mysqld.log或
/var/log/mysql/error.log) 典型报错包括:
Can't start server: Bind on TCP/IP port: Address already in use(端口冲突)、
Can't create/write to file、
Incorrect file format、
Permission denied等 临时验证:切换到
mysql用户后手动尝试访问关键路径,例如:
sudo -u mysql ls -l /var/lib/mysql
