2016-11-07 2 views
3

У меня есть небольшой веб-сайт Wordpress, размещенный на моем общем сервере Hostgator. Я не обращал на это особого внимания, потому что сайт работает нормально, до недавнего времени я заметил файл журнала ошибок размером 40 гигабайт в корневой папке. Мне не удалось открыть файл, поэтому я удаляю его и жду, пока файл снова появится. Несколько секунд спустя файл был там снова с этой линией внутри:Почему Wordpress создает гигантский файл error_log?

[07-Nov-2016 4:26:22] Ошибка базы данных WordPress УДАЛЕНИЯ команды отказано пользователем «HIDDEN_DATABASE_NAME» @ «локальной» для таблицы «sv_options 'для запроса DELETE FROM sv_options WHERE option_name = „_transient_doing_cron“ сделаны delete_transient, delete_option

Я запустить ремонт и оптимизировать в PhpMyAdmin, но эта линия еще добавляется в файл примерно каждые 2 минуты. Как я могу найти причину этой ошибки? Я не эксперт, но я могу найти дорогу cPanel.

+2

Это довольно очевидно объяснили ... 'ошибка базы данных УДАЛЕНИЯ команды отказана пользователю«HIDDEN_DATABASE_NAME» @ «localhost», т.е. пользователь, который пытается выполнить запрос DELETE, не имеет прав для этого. –

ответ

2

Из-за ошибки кажется, что пользователь mysql, который пытается выполнить DELETE, не имеет разрешения на это. Что нужно сделать, так это дать разрешение этому пользователю:

grant all privileges on mydb.* to [email protected]'%' identified by 'mypasswd'; 
grant all privileges on mydb.* to [email protected] identified by 'mypasswd'; 
FLUSH PRIVILEGES; 

Это должно прекратить добавлять ошибки в ваш журнал. Дополнительные ссылки о MySQL grant and privileges

Вы можете увидеть все привилегии пользователя в PHPMyAdmin также со следующим SQL

show grants for [email protected]'localhost'; 

Примечание: Выше заявления будут давать ВСЕ привилегии одному пользователю, который с точки зрения безопасности ISN Хорошая идея. Поскольку ошибка о DELETE вы можете дать УДАЛИТЬ привилегии только для пользователя (или выберите, обновление, вставку, при необходимости также)

GRANT DELETE ON mydb.* to [email protected]'%' identified by 'mypasswd'; 
+2

Я бы никогда не предоставил все привилегии, только те, которые нужны. Приложение не должно иметь привилегии для создания пользователя или разрешения на изменение. –

+1

@ChristianGollhardt Я согласен. Я бы тоже этого не сделал, и я отвечу на мой ответ. –

+0

Прежде чем попробовать это, есть способ найти, какой процесс пытается выполнить удаление? Я не хочу предоставлять эту привилегию, не зная, почему это происходит. – Klikerko

Смежные вопросы