为啥 Wordpress 会创建一个巨大的 error_log 文件?
Posted
技术标签:
【中文标题】为啥 Wordpress 会创建一个巨大的 error_log 文件?【英文标题】:Why is Wordpress creating a giant error_log file?为什么 Wordpress 会创建一个巨大的 error_log 文件? 【发布时间】:2017-03-20 08:56:58 【问题描述】:我有一个小型 Wordpress 网站,托管在我的共享 Hostgator 服务器上。我没有太在意它,因为网站运行良好,直到最近我注意到根文件夹中有一个 ~40GB 的错误日志文件。我无法打开该文件,因此我将其删除并等待该文件再次出现。几秒钟后文件又出现了,里面有这行:
[2016 年 11 月 7 日 04:26:22] WordPress 数据库错误 DELETE 命令拒绝用户 'HIDDEN_DATABASE_NAME'@'localhost' 查询表 'sv_options' 删除来自
sv_options
WHEREoption_name
= '_transient_doing_cron'由delete_transient,delete_option制作
我已在 phpMyAdmin 中运行修复和优化,但此行仍大约每 2 分钟添加到文件中。我应该如何找到导致此错误的原因?我不是专家,但我可以在 cPanel 中找到自己的方法。
【问题讨论】:
这很自我解释...database error DELETE command denied to user 'HIDDEN_DATABASE_NAME'@'localhost'
即尝试执行 DELETE 查询的用户没有执行此操作的权限。
【参考方案1】:
从错误看来,试图执行DELETE
的mysql 用户没有这样做的权限。您要做的就是授予该用户权限,例如:
grant all privileges on mydb.* to myuser@'%' identified by 'mypasswd';
grant all privileges on mydb.* to myuser@localhost identified by 'mypasswd';
FLUSH PRIVILEGES;
这应该会停止向您的日志添加错误。更多关于MySQL grant and privileges的参考
您还可以使用以下 sql 在 phpmyadmin 中查看用户的所有权限
show grants for myuser@'localhost';
注意:以上语句将所有权限授予一个用户,从安全角度来看这不是一个好主意。由于错误是关于 DELETE
的,您可以只给用户删除权限(或者如果需要也可以选择、更新、插入)
GRANT DELETE ON mydb.* to myuser@'%' identified by 'mypasswd';
【讨论】:
我永远不会授予所有权限,只会授予需要的权限。应用程序不应拥有创建用户或更改权限的权限。 @ChristianGollhardt 我同意。我也不会这样做,我会记下我的回答。 在我尝试这个之前,有没有办法找到正在尝试执行删除的进程?在不知道为什么会发生这种情况的情况下,我不愿意授予此特权。 我会从 cronjobs 或一些自动化任务开始。似乎操作正在不停地运行..检查它们。还要检查插件..以上是关于为啥 Wordpress 会创建一个巨大的 error_log 文件?的主要内容,如果未能解决你的问题,请参考以下文章
使用serde-xml-rs反序列化XML会创建Err(重复字段`$ value`)
为啥 React.createElement() 会创建一个对象?