Общеизвестно, что база данных в CMS WordPress является “сердцем” всего сайта, так как вся информация, включая настройки тем и плагинов, хранится именно в ней. Поэтому именно база данных является основной целью для хакерских атак. Особо уязвимым местом в базе данных является названия ее таблиц. По умолчанию, “движок” создает одни и те же их названия во всех устанавливаемых копиях. Само название состоит из префикса (wp_) и собственно имени самой таблицы (например, wp_options). Отметим, что префиксы у всех таблиц одинаковые. Поэтому, чтобы запутать злоумышленника, достаточно изменить этот префикс.
Для изменения префикса таблиц базы данных WordPress существует несколько способов. Рассмотрим подробнее наиболее распространенные среди них.
Способ 1 – плагин Change Table Prefix
Бесплатный плагин Change Table Prefix позволит в один клик корректно изменить префикс всех таблиц Вашего WordPress-сайта, не нарушая его работу. Для этого, во-первых, необходимо установить и активировать дополнение. После этого нужно в админ-панели перейти в раздел Настройки -> Change Table Prefix.
Видно, что плагин имеет минимум настроек. Так, в поле Your current table prefix is отображается текущий префикс таблиц (в нашем случае – это wp_). Для изменения префикса плагин предлагает два варианта. Первый заключается в том, что плагин в автоматическом режиме произвольно выберет название префикса. Обычно это простой набор из 5 любых символов. Для этого нужно просто нажать кнопку Click To Change Table Prefix.
Видно, что плагин выбрал в качестве префикса значение flrda_. Если необходимо задать свое название префикса, то для этого нужно отметить опцию Would you like to your own custom prefix, после чего в появившемся поле ввести желаемые символы и нажать кнопку Click To Change Table Prefix.
Этот плагин был закрыт 7 марта 2024 года и больше недоступен для скачивания из-за проблем с безопасностью.
Способ 2 – плагин Brozzme DB Prefix & Tools Addons
Brozzme DB Prefix – это актуальный плагин для генерации нового префикса базы данных вашего сайта в один клик. Чтобы применить настройки, нужно удостовериться, что wp-config.php доступен для записи и есть права на изменение базы данных.
У этого решения нет каких-либо особых настроек, но он также способен сделать экспорт всей базы My SQL.
Способ 3 – ручное изменение префикса таблиц
Этот способ предусматривает изменение префикса таблиц ручным способом. Корректная замена выполняется в два этапа. Во-первых, новый префикс нужно задать в wp-config.php – основном конфигурационном файле WordPress. Для этого в файле нужно найти строку $table_prefix = ‘wp_’ и вместо wp_ указать нужное значение (например, wpschool_).
Второй этап – это использование бесплатной утилиты для работы с базами данных phpMyAdmin, которую детально мы рассматривали в одной из наших прошлых статей. Будем считать, что Вы уже знаете, как ее открыть. Отметим лишь, что будем работать с вкладкой SQL.
Для начала заменим имена всех таблиц в базе данных с учетом нашего префикса wpschool_. Сразу стоит отметить, что некоторые плагины создают свои собственные таблицы, которые тоже должны быть переименованы. Итак, в поле SQL необходимо вставить следующий код:
RENAME table `wp_commentmeta` TO `wpschool_commentmeta`; RENAME table `wp_comments` TO `wpschool_comments`; RENAME table `wp_links` TO `wpschool_links`; RENAME table `wp_options` TO `wpschool_options`; RENAME table `wp_postmeta` TO `wpschool_postmeta`; RENAME table `wp_posts` TO `wpschool_posts`; RENAME table `wp_termmeta` TO `wpschool_termmeta`; RENAME table `wp_terms` TO `wpschool_terms`; RENAME table `wp_term_relationships` TO `wpschool_term_relationships`; RENAME table `wp_term_taxonomy` TO `wpschool_term_taxonomy`; RENAME table `wp_usermeta` TO `wpschool_usermeta`; RENAME table `wp_users` TO `wpschool_users`; RENAME table `wp_yoast_seo_links` TO `wpschool_yoast_seo_links`; RENAME table `wp_yoast_seo_meta` TO `wpschool_yoast_seo_meta`;
В редакторе это будет выглядеть следующим образом:
После того, как будет нажата кнопка Вперед, наш запрос на переименование будет выполнен.
Далее нужно изменить названия полей и опций, зависящих от префикса таблиц. Для следует выполнить следующий запрос:
UPDATE `wpschool_usermeta` SET `meta_key` = REPLACE( `meta_key`, 'wp_', 'wpschool' ); UPDATE `wpschool_options` SET `option_name` = 'wpschool_user_roles' WHERE `option_name` = 'wp_user_roles';
Если все прошло успешно, сайт будет работать в штатном режиме, без каких-либо сбоев. Теперь плагины, которые захотят создать свои таблицы в базе данных, будут использовать заданный нами префикс wpschool_, так как мы указали это значение в файле wp-config.php.
Ещё читайте: Что значит ошибка установки соединения с базой данных wordpress и как ее решить.
Нажмите, пожалуйста, на одну из кнопок, чтобы узнать понравилась статья или нет.
Здравствуйте, из-за этой статьи у меня возникла очень большая проблема! После изменения префикса таблиц, у меня на сайте запросили регистрацию в wordpress. После этого все плагины в консоли сохранились, но все страницы и содержание сайта удалились!!! ВСЕ НАСТРОЙКИ СБРОСИЛИСЬ И ОФОРМЛЕНИЕ САЙТА ТОЖЕ! ЗАМЕНИЛ ФАЙЛЫ САЙТА КОПИЕЙ, НО ЭТО НЕ ПОМОГЛО! ПОМОГИТЕ ПРОШУ ВАС!!!
Не получилось, база данных сообщает о ошибках после второго запроса
Добрый день!
Каким способом Вы делали и какие ошибки выдаются?
С уважением Михаил
Этот плагин закрыт 7 марта 2024 г. и недоступен для загрузки. Причина: Проблема безопасности.
Добрый день. Спасибо за внимательность. Актуализировали статью, добавили в нее рабочий вариант решения вопроса другим плагином. Также могу посоветовать протестировать еще один плагин для работы с базами данных на WordPress: https://ru.wordpress.org/plugins/search-and-replace/.