Сайт застрял в цикле "Требуется обновление базы данных"
Я только что обновился до версии 3.1.3, и теперь при входе в админ-панель я получаю экран "Требуется обновление базы данных" /wp-admin/upgrade.php. Я нажимаю 'Обновить сейчас', и система сообщает, что обновление завершено, но при попытке доступа к любому разделу админки я снова получаю тот же экран. Как мне решить эту проблему?
РЕДАКТИРОВАНИЕ: Пытаясь использовать решение toscho, я обнаружил, что таблицы базы данных WordPress недоступны для записи, что, вероятно, и привело к циклу ошибок. Есть ли идеи, как это отследить и исправить?
Где в итоге хранится эта настройка? Я не могу получить доступ к /wp-admin/options.php без авторизации, что и вызывает сообщение об ошибке из моего исходного сообщения.
John Sheehan
Нашел этот параметр в таблице wp_options, но phpMyAdmin не позволяет его редактировать, потому что таблица имеет статус 'Только для чтения' — вероятно, именно поэтому значение не было установлено и в этом корень моей проблемы.
John Sheehan
@John Sheehan С вашей базой данных явно что-то не так. Сделайте резервную копию, затем попробуйте опцию восстановления в phpMyAdmin. Если это не поможет, сделайте таблицу доступной для записи вручную.
fuxia
Да, ты прав. Думаю, я знаю, в чем проблема. Работаю над правильной настройкой прав доступа к файлам базы данных.
John Sheehan
@fuxia Опция db_upgraded появляется только в базе данных, но не в файле options.php.
hitautodestruct
Привет @fuxia, я не смог найти это поле в текущей установке WordPress (5.3.2). Где его можно найти?
Malcolm Salvador
Если вы не отключили все плагины перед обновлением, сделайте это вручную, переименовав директорию wp-content/plugins.
Очистите кэш браузера и все куки, затем попробуйте снова.
Если проблема сохраняется, откройте файл wp-includes/version.php, чтобы убедиться, что это правильный файл для версии 3.1.3.
Вы должны увидеть следующую версию базы данных:
/**
* Строка версии WordPress
*
* @global string $wp_version
*/
$wp_version = '3.1.3';
/**
* Содержит ревизию базы данных WordPress, увеличивается при изменениях в схеме БД WordPress.
*
* @global int $wp_db_version
*/
$wp_db_version = 17516;
Если всё проверено, но проблема остаётся, добавьте это в ваш файл wp-config.php:
define('WP_ALLOW_REPAIR', true);
Перейдите по адресу: yoursite.com/wp-admin/maint/repair.php, чтобы попытаться восстановить базу данных.
С какой версии WordPress вы обновляетесь?
В моем случае решением оказалась перезагрузка memcached. Мы используем плагин Memcached.
Для меня проблемой были права пользователя базы данных и самой БД. Они были слишком строгими, как только я дал пользователю ВСЕ привилегии, я смог пройти цикл.
Либо исправьте права пользователя вашего SQL-пользователя, либо используйте root, если у вас есть доступ к этому пользователю SQL.
Я решил эту проблему, используя функцию core upgrade-db проекта WP-CLI. Она предназначена для выполнения точно такой же задачи, но с использованием командной строки вместо веб-интерфейса.