Как изменить префикс таблиц базы данных WordPress?

Общеизвестно, что база данных в CMS WordPress является “сердцем” всего сайта, так как вся информация, включая настройки тем и плагинов, хранится именно в ней. Поэтому именно база данных является основной целью для хакерских атак. Особо уязвимым местом в базе данных является названия ее таблиц. По умолчанию, “движок” создает одни и те же их названия во всех устанавливаемых копиях. Само название состоит из префикса (wp_) и собственно имени самой таблицы (например, wp_options). Отметим, что префиксы у всех таблиц одинаковые. Поэтому, чтобы запутать злоумышленника, достаточно изменить этот префикс.

Для изменения префикса таблиц базы данных WordPress существует несколько способов. Рассмотрим подробнее наиболее распространенные среди них.

Способ 1. Плагин Change Table Prefix

Бесплатный плагин Change Table Prefix позволит в один клик корректно изменить префикс всех таблиц Вашего WordPress-сайта, не нарушая его работу. Для этого, во-первых, необходимо установить и активировать дополнение. После этого нужно в админ-панели перейти в раздел Настройки -> Change Table Prefix.

Страница настроек плагина Change Table Prefix

Видно, что плагин имеет минимум настроек. Так, в поле Your current table prefix is отображается текущий префикс таблиц (в нашем случае — это wp_). Для изменения префикса плагин предлагает два варианта. Первый заключается в том, что плагин в автоматическом режиме произвольно выберет название префикса. Обычно это простой набор из 5 любых символов. Для этого нужно просто нажать кнопку Click To Change Table Prefix.

Выбор имени префикса в плагине Change Table Prefix

Видно, что плагин выбрал в качестве префикса значение flrda_. Если необходимо задать свое название префикса, то для этого нужно отметить опцию Would you like to your own custom prefix, после чего в появившемся поле ввести желаемые символы и нажать кнопку Click To Change Table Prefix.

Выбор имени префикса в плагине Change Table Prefix

Способ 2. Ручное изменение префикса таблиц

Этот способ предусматривает изменение префикса таблиц ручным способом. Корректная замена выполняется в два этапа. Во-первых, новый префикс нужно задать в wp-config.php — основном конфигурационном файле WordPress. Для этого в файле нужно найти строку $table_prefix = ‘wp_’ и вместо wp_ указать нужное значение (например, wpschool_).

Редактирование файла wp-config.php

Второй этап — это использование бесплатной утилиты для работы с базами данных phpMyAdmin, которую детально мы рассматривали в одной из наших прошлых статей. Будем считать, что Вы уже знаете, как ее открыть. Отметим лишь, что будем работать с вкладкой SQL.

Окно утилиты phpMyAdmin

Для начала заменим имена всех таблиц в базе данных с учетом нашего префикса 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`;

В редакторе это будет выглядеть следующим образом:

SQL-запрос в утилите phpMyAdmin

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

Далее нужно изменить названия полей и опций, зависящих от префикса таблиц. Для следует выполнить следующий запрос:

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 и как ее решить.

Нажмите, пожалуйста, на одну из кнопок, чтобы узнать понравилась статья или нет.

Если Вам понравилась статья — поделитесь с друзьями
Михаил Петров
Привет! Меня зовут Михаил Петров. Я копирайтер и занимаюсь этим с 2013 года. Скрупулезность и ответственность - моя фишка! Не могу делать как попало и добиваюсь, чтоб заказчик сказал минимум “неплохо”. За все время своей работы пришлось написать и отредактировать немало разной “текстовухи”, включая SEO-тексты, отзывы и прочую чушь. На сегодняшний день специализируюсь на написании информационных статей и руководств технического направления. Вижу смысл и светлое будущее в текстах для людей, а не для машин.
Обсуждение: 3
  1. Владимир

    Здравствуйте, из-за этой статьи у меня возникла очень большая проблема! После изменения префикса таблиц, у меня на сайте запросили регистрацию в wordpress. После этого все плагины в консоли сохранились, но все страницы и содержание сайта удалились!!! ВСЕ НАСТРОЙКИ СБРОСИЛИСЬ И ОФОРМЛЕНИЕ САЙТА ТОЖЕ! ЗАМЕНИЛ ФАЙЛЫ САЙТА КОПИЕЙ, НО ЭТО НЕ ПОМОГЛО! ПОМОГИТЕ ПРОШУ ВАС!!!

  2. Fi

    Не получилось, база данных сообщает о ошибках после второго запроса

    1. Михаил Петров author

      Добрый день!

      Каким способом Вы делали и какие ошибки выдаются?

      С уважением Михаил

Задать вопрос