Изменяем префикс БД worpress в MySQL (MariaDB) - Geek-Speak

Изменяем префикс БД worpress в MySQL (MariaDB)

Главная Форумы SOFTWARE Tuning Systems Изменяем префикс БД worpress в MySQL (MariaDB)

Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Автор
    Сообщения
  • #2429
    E-tec
    Хранитель

      Первым делом нужно понимать для чего это все нужно. В большей мере для безопасности данных в Базе Данных от SQL-инъекций. Дело в том, что стандартные имена таблиц базы данных wordpress, знают все. Например все знают, что опции сайта хранятся в таблице wp_options. А изменённый префикс как раз таки позволит добавить уникальности в имена таблиц и спрятать их от возможных злоумышленников.

      Понятное дело префикс можно задать при первоначальной установке CMS, но врятли кто-то задумывается об этом, при создании сайта. По этому данный мануал подойдет для тех, кто уже установил CMS, а в последствии использования или установке realy simple ssl, увидел, что перфикс все же нужно было менять)

      Итак замена префикса осуществляется в два шага, 1 шаг переименование префикса во всех таблицах БД, шаг 2 изменение подключения wordpress к этой самой базе и изменение префикса в конфигурационном файле.

      Перед тем как приступать, нужно понимать, что сайт работает и мы не хотим его “ложить” на длительное время, т.к. переименование таблиц займет продолжительное время (сколько? зависит от того, сколько плагинов установлено на сайте). По этому первым делом идем в phpmyadmin и экспортируем текущую БД на свой ПК.

      После этого идем в панель управления сайтами, либо напрямую в SQL, у кого на чем работает сайт. Я использую hestiacp по этому иду в панель управления, и создаю новую БД!

      Создание БД довольно простое, придумываем имя БД, имя пользователя и пароль, после чего записываем их или сохраняем в укромное место =)

      Снова идем в phpmyadmin, но подключаемся уже к НОВОЙ БД. Видим абсолютно чистую БД без единой таблицы, импортируем данные, которые экспортировали в самом начале.

      Примечание! В момент экспорта сайт может выдать ошибку 502, НЕ перезагружаем страницу в этот момент и НЕ закрываем вкладку, операция экспорта будет выполнять, чтоб убедиться в этом можно подключиться к новой БД через phpmyadmin с другого браузера, и смотреть как наполняется БД таблицами!

      После того как увидели, что в новой БД все таблицы восстановлены (это можно понять по кол-ву таблицы и объему БД, сравнивайте старую и новую), предстоит кропотливая работа по переименованию.
      Переходив в вкладу SQL “запросника”.

      В поле вводим следующие строки, чтоб переименовать префиксы таблиц:

      RENAME TABLE wp_ahm_assets TO my_pref_ahm_assets;
      RENAME TABLE wp_ahm_asset_links TO my_pref_ahm_asset_links;
      RENAME TABLE wp_ahm_download_stats TO my_pref_ahm_download_stats;
      RENAME TABLE wp_ahm_emails TO my_pref_ahm_emails;
      RENAME TABLE wp_ahm_sessions TO my_pref_ahm_sessions;
      RENAME TABLE wp_ahm_social_conns TO my_pref_ahm_social_conns;
      RENAME TABLE wp_bws_list_countries TO my_pref_bws_list_countries;
      RENAME TABLE wp_bws_list_ip TO my_pref_bws_list_ip;
      RENAME TABLE wp_cbxuseronline TO my_pref_cbxuseronline;
      RENAME TABLE wp_ahm_user_download_counts TO my_pref_ahm_user_download_counts;
      RENAME TABLE wp_commentmeta TO my_pref_commentmeta;
      RENAME TABLE wp_comments TO my_pref_comments;
      RENAME TABLE wp_gglcptch_allowlist TO my_pref_gglcptch_allowlist;
      RENAME TABLE wp_links TO my_pref_links;
      RENAME TABLE wp_litespeed_url TO my_pref_litespeed_url;

      Т.е. нужно переименовать ВСЕ таблицы имеющие в названии wp_ на любое свое, в моем примере my_pref_. Тут стоит отметить, что НЕ стоит смотреть имена таблиц в левом столбце phpmyadmin, т.к. в нем отображается НЕ ВЕСЬ список таблиц! Чтоб увидеть полный список перейдите во вкладку СТРУКТУРА. У меня было 72 таблицы, соответственно 72 строки с ренеймом.

      После, того как вписали все таблицы, что у вас есть жмем кнопку выполнить, и если все отлично увидите в ответ уведомление.

      Не закрываем phpmyadmin, а снова идем в SQL “запросник”, на этот раз выполняем еще два зависимых скрипта:

      UPDATE my_pref_options SET option_name = 'my_pref_user_roles' WHERE option_name = 'wp_user_roles';
      UPDATE my_pref_usermeta SET meta_key = 'my_pref_capabilities' WHERE meta_key = 'wp_capabilities';

      Эти скрипты изменяют зависимость таблиц, уже в переименованных только, что нами таблицах, от тех которые уже не существуют ввиду их переименования. По удачному выполнению скриптов увидите примерно такое же уведомление, что и при переименовании.

      Если все прошло без ошибок, то можно быть уверенным в готовности к тому, чтоб “подменить” текущую БД, на ту, что мы только что подготовили! Чтоб подключить новую БД к нашему сайту, идем в папку с установленной CMS. Сделать это можно разными способами, через FTP, или SSH. Я подключился через SHH, ищем файлы wp_config.php

      Открываем его любым редактором, я использую nano. В нем ищем секции подключения к БД и префикс, и меняем их:

      // ** Параметры MySQL: Эту информацию можно получить у вашего хостинг-провайдера ** //
      /** Имя базы данных для WordPress */
      define('DB_NAME', 'admin_MYNEWBD');
      /** Имя пользователя MySQL */
      define('DB_USER', 'admin_MYNEWUSER');
      /** Пароль к базе данных MySQL */
      define('DB_PASSWORD', 'MYNEWPASS');
      /** Имя сервера MySQL */
      define('DB_HOST', 'localhost');
      /** Кодировка базы данных для создания таблиц. */
      define('DB_CHARSET', 'utf8mb4');
      /** Схема сопоставления. Не меняйте, если не уверены. */
      define('DB_COLLATE', '');
      /**#@+
      
      ...
      
       * Префикс таблиц в базе данных WordPress.
       *
       * Можно установить несколько сайтов в одну базу данных, если использовать
       * разные префиксы. Пожалуйста, указывайте только цифры, буквы и знак подчеркивания.
       */
      $table_prefix  = 'my_pref_';
      

      Сохраняем файл, идем проверять работу сайта, а так же на сколько доволен simple ssl)))

    Просмотр 1 сообщения - с 1 по 1 (всего 1)
    • Для ответа в этой теме необходимо авторизоваться.
    Авторизация
    *
    *
    Регистрация
    *
    *
    *
    Пароль не введен
    *
    Генерация пароля