Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  SELinux File Context

8.7.4 SELinux 文件上下文

MySQL 服务器读取和写入许多文件。如果 SELinux 上下文未正确设置,这些文件的访问可能被拒绝。

以下的指令使用 semanage 二进制文件管理文件上下文;在 RHEL 中,它是 policycoreutils-python-utils 包的一部分:

yum install -y policycoreutils-python-utils

安装 semanage 二进制文件后,您可以使用 semanagefcontext 选项来列出 MySQL 文件上下文。

semanage fcontext -l | grep -i mysql

默认情况下,数据目录的位置是 /var/lib/mysql/,并使用 mysqld_db_t 上下文。

如果您编辑配置文件以使用不同的数据目录位置或文件(例如二进制日志),您可能需要为新位置设置上下文。例如:

semanage fcontext -a -t mysqld_db_t "/path/to/my/custom/datadir(/.*)?"
restorecon -Rv /path/to/my/custom/datadir

semanage fcontext -a -t mysqld_db_t "/path/to/my/custom/logdir(/.*)?"
restorecon -Rv /path/to/my/custom/logdir

默认情况下,RedHat RPM 的位置是 /var/log/mysqld.log,并使用 mysqld_log_t 上下文。

如果您编辑配置文件以使用不同的位置,您可能需要为新位置设置上下文。例如:

semanage fcontext -a -t mysqld_log_t "/path/to/my/custom/error.log"
restorecon -Rv /path/to/my/custom/error.log

默认情况下,PID 文件的位置是 /var/run/mysqld/mysqld.pid,并使用 mysqld_var_run_t 上下文。

如果您编辑配置文件以使用不同的位置,您可能需要为新位置设置上下文。例如:

semanage fcontext -a -t mysqld_var_run_t "/path/to/my/custom/pidfile/directory/.*?"
restorecon -Rv /path/to/my/custom/pidfile/directory

如果您编辑配置文件以使用不同的位置,您可能需要为新位置设置上下文。例如:

从 MySQL 5.6.34、5.7.16 和 8.0.11 版本开始。

semanage fcontext -a -t mysqld_var_run_t "/path/to/my/custom/mysql\.sock"
restorecon -Rv /path/to/my/custom/mysql.sock

如果您启用了使用该目录的功能(通过设置 secure_file_priv),您可能需要设置上下文。例如:

编辑该路径,如果您使用了不同的位置。出于安全原因,这个目录不能在数据目录中。

有关该变量的更多信息,请参阅 secure_file_priv 文档。

semanage fcontext -a -t mysqld_db_t "/var/lib/mysql-files/(/.*)?"
restorecon -Rv /var/lib/mysql-files

Edit this path if you used a different location. For security purposes, this directory should never be within the data directory.

For more information about this variable, see the secure_file_priv documentation.