如何更改 MySQL 中日志文件的位置?

如何更改 MySQL 中日志文件的位置?

我希望能够从 FTP 访问日志文件。

FTP 主目录:/home/site/

我在 /etc/my.cnf 中执行了此操作:

long_query_time=2
log-slow-queries=/home/site/public_html/mysql-logs/mysql-log-slow-queries.log
log-queries-not-using-indexes
log_error=/home/site/public_html/mysql-logs/mysql-error.log

MySQL-logs文件夹权限:0760 日志文件权限:0660

但如果运气不好,MySQL 就不会更新新文件。

我究竟做错了什么?

CENTOS 6.9 MYSQL 5.1

答案1

哪个用户正在运行 mysqld?

运行 mysqld 的用户(通常是 mysql)可能没有 /home/site/public_html/mysql-logs/ 的写权限

因此,它无法写入日志文件。

尝试为 /home/site/public_html 所有者和 mysql 创建一个组,然后 chmod 0775 目录和 chown 目录

答案2

我首先想到的是,mysql 用户无权访问“site”的主目录。如果它无法访问,它也无法写入该文件。即使它有权写入 mysql-logs 目录。

为什么不直接将日志写入 /var/log/mysql/ 并对其进行符号链接呢?

cd /home/site/public_html/mysql-logs/
ln -s /var/log/mysql/mysql-log-slow-queries.log
ln -s /var/log/mysql/mysql-error.log

答案3

这可能与 SELINUX 阻止 mysql 写入/home/site/public_html/mysql-logs/路径有关。

尝试发出以下命令:setenforce 0并重新启动 mysql。如果现在可以写入日志,则您已找到罪魁祸首。但是,您应该不是保持 SELINUX 处于禁用状态,因为它是一项非常宝贵的安全资产。

相反,使用正确类型的semanage fcontext标签,通过运行重新启用 SELINUX ,然后重新启动 mysql。/home/site/public_html/mysql-logs/setenforce 1

相关内容