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

Сегодня думал вывесить тут заметку про эти ваши роботсы. Но в последний момент было решено, что тема является безблагодатной.
Хотя если кому-то это надо – пишите.
Ликвидируем пробел.
А сегодня будем толковать про то, как изменить префикс таблиц базы данных.

Вообще, материалов на эту тему тьма. И все они сводятся к следующему: изменять префикс базы данных блога нужно для того, чтобы предотвратить SQL-инъекции в базу данных блога.
Поэтому надо немедленно включить вот этот плагин, и наступит щастье. Фсё.

Половина из этих писарчуков – весьма слабо представляет себе, что собой представляет эта самая «инъекция» (педевикия вам в помощь), и как ее обнаружить (www.securitylab.ru/contest/212083.php).
Они просто повторяют в своих блогах написанное у других, словно попугаи.
Вторая половина – никогда не пробовала в деле рекомендуемые «полезные плагины».

Именно по этой причине я ненавижу всякие «полезные подборАчки ссылочек» и не менее «полезные списочки плагинов».
Особенно, если они огромные.
Когда вы видите перед собой такое дерьмо, будьте уверены: написавший – понятия не имеет о половине содержимого своего «полезного списка», и о том, работает ли оно в действительности, или нет.

Далеко за примером ходить не буду.

Чаще всего для того, чтобы изменить префикс таблиц базы данных, рекомендуется плагин WP Prefix Table Changer. Это, мол, решение всех ваших проблем. И если вы не удосужились изменить префикс базы данных в момент редактирования файла конфигурации при самой первой установке блога – плагин вам поможет.

Ага, щаз.

Официальный сайт плагина – вот: blogsecurity.net/wordpress/tool-130707.
Только я бы на вашем месте туда не спешил.
Потому что установить-то вы его, конечно, установите. Но при попытке изменить префикс базы данных сервер завизжит человеческим голосом, и скажет, что у пользователя данной базы – недостаточно прав для того, чтобы что-то в этой самой базе менять.
И пофигу два раза, что с правами-привелегиями-полномочиями у пользователя полный порядок.
Нет, и все тут.

Возникает вопрос: зачем же тут упоминается об этой приблуде, если она не работает? А затем, что сервера бывают разные. И если оно не работает здесь, еще не факт, что оно не будет работать у вас.
Хотя народ от этой приблуды не в восторге, чоуштам.
Что какбе намекает, что перед нами, скорее всего, бесполезное говно.
И это говно бестолковые писарчуки хором нахваливают.

Аналогичная функция для изменения префиксов таблиц, кстати, имеется еще у одного плагина – WP-Seсurity-Scan. (wordpress.org/extend/plugins/wp-security-scan/).

Выглядит это вот так:

WP Seсurity Scan

И тоже в большинстве случаев не работает. Визжа про все те же недостаточные полномочия.

А теперь про то, что работает

Наилучшим решением для смены префикса базы данных блога является приблуда под названием Table Prefix Rename Plugin. (www.seoegghead.com/software/wordpress-table-rename.seo)
Установка стандартная.
После установки открываем настройки, и видим вот это:

Table Prefix Rename Plugin

Как можно догадаться, смена префиксов таблиц происходит в два этапа. На первом этапе – выбирается новый префикс, а затем – генерируются новые таблицы.

На втором – происходит замена этих самых таблиц.

  • Важный момент: прежде, чем жмякать кнопочку change table prefix, настоятельно рекомендуется слазить на сервер, и отредактировать файл wp-config.php, вписав в него новый префикс, который вы выбрали.
    В противном случае – оно не сработает.

 

  • Второй важный момент: после того, как все успешно срослось, и префикс поменялся, следует опять залезть на сервер, и отрыть там php MyAdmin.
    Дело вот в чем: несмотря на то, что префикс базы данных мы поменяли, старые таблицы, с префиксом wp, из этой базы никуда не делись.
    Они так там и висят.
    И от них можно (и нужно) избавиться.
    Отмечаем их галочкой, и удаляем, чтобы они попусту не занимали место.

И наконец, если ни один из перечисленных выше способов не сработал, придется самолично лезть в базу данных, и ковырять ее руками.

Изменение префикса таблиц базы данных с помощью прямых SQL-запросов

Естественно, первым делом следует забэкапить свою базу данных.
После этого – зайти в php MyAdmin на хостинге, и открыть окно SQL-запросов (о том, как оно выглядит, было рассказано в заметке о восстановлении блога).
Открыв окно, пишем в нем вот это:

SQL-запрос 1

Это – запрос для переименования одной таблицы. Таких таблиц в блоге – несколько. Сколько их там конкретно – зависит от версии движка, и от количества навешанных на этот движок плагинов (некоторые из плагинов имеют свойство самостоятельно создавать для себя новые таблицы).
Но ориентировочно – в базе будет от десяти до двадцати таблиц.
К каждой из них – выполняется вышеуказанный запрос.
(Естественно, в запрос каждый раз надо будет подставлять название редактируемой таблицы).

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

Чтобы избежать таких сюрпризов, придется редактировать таблицу prefix_options, а точнее – следует отредактировать одну из ее опций, которая называется prefix_user_roles.

Выполняем вот такой запрос:

SQL-запрос 2

Этот запрос следует повторить для каждой опции, в которой используется старый префикс wp.

Ну а после всего этого – нужно не забыть подредактировать файл конфигурации wp-config.php, и прописать там новый префикс таблиц базы данных.
Если юный писарчук в бложек забудет об этом важном шаге – он может сильно-сильно загрустить.

ФСЁ!



Запись опубликована в рубрике Wordpress. Добавьте в закладки постоянную ссылку.

3 комментария на «Как поменять префикс таблиц базы данных»

  1. Ната говорит:

    Спасибо большое, с вашей помощью все получилось, вручную префиксы в конфиге редактировать не пришлось, программка сделала все сама.

  2. admin говорит:

    На здоровье.

  3. Сергей говорит:

    Здравствуйте!

    Плагины решил не использовать. Ручками оно как-то надежнее)) Скопировал базу (на всякий пожарный, создал двойной бэкап). Заменил там все префиксы wp_ в программке Notepad++ на новые. Прописал соответствующие буковки в wp-config, и voi la! 🙂 Залил БД по новой, удалил старые таблицы. Перезапустил блог. Все работает)))

Обсуждение закрыто.