mysql: измените http://old-domain.com на http://new-domain.com во всех таблицах

Я использую операторы отсюда:

http://www.mydigitallife.info/2007/10/01/how-to-move-wordpress-blog-to-new-domain-or-location/

но я должен был изменить их, потому что я использую многопользовательский, и это имеет другую структуру таблицы (странные пронумерованные таблицы). Как Вы видите в моем предыдущем вопросе, это все ДЕЙСТВИТЕЛЬНО проблематично... Таким образом, мой вопрос:

Я могу просто изменить http://old-domain.com на http://new-domain.com везде... в каждой таблице в той базе данных? Как я делаю такой поиск и замену mysql? Или возможно что-то еще было бы лучше для использования для этой задачи?

8
задан Community 23 May 2017 в 10:29
поделиться

3 ответа

Вы можете бросить всю БД в файл .sql и выполнять замену и импортировать его обратно.

Чтобы сбросить файл DB в SQL, вы можете использовать команду mysqldump или вы можете сделать, хотя phpmyadmin

mysqldump --opt -uUSERNAME -pPASSWORD -h MYSQLDOMAIN YOURDB > yourdbdump.sql

заменить текст в файле .sql, который вы могли бы сделать

sed -ie 's/old-domain.com/new-domain.com/g' yourdbdump.sql

, чтобы восстановить его обратно

mysql -uUSERNAME -pPASSWORD -h MYSQLDOMAIN YOURDB < yourdbdump.sql
8
ответ дан 5 December 2019 в 15:23
поделиться

WordPress Mu - боль в заднице, чтобы мигрировать.

Нет ничего, что заставит стол к столу и заменить эти URL. И вы хотите быть осторожным, редактированием файла SQL Dump в случае, если URL хранится внутри любых сериализованных объектов или массивов, которые вы будете уничтожать целостность этих данных.

Если вы хотите сделать это прямо в MySQL, вы можете, но это будет много времени. Это также будет самым безопасным.

Это будет проще всего в Phpmyadmin, даже для опыта SQL GURUS, так как PhpmyAdmin просто удобно, так как вы часто редактируете запрос SQL. Базовый запрос:

Update "table_name"
SET "column_name" = REPLACE("column_name","find","replace")
WHERE "column_name" LIKE "%find%"

Итак, в вашем случае для почтовых таблиц:

Update wp_1_posts
SET post_content = REPLACE(post_content,"www.oldurl.com","www.newurl.com")
WHERE post_content LIKE "%www.oldurl.com%"

Далее посмотрите на таблицы постмета. Вы можете бежать, чтобы беспокоиться здесь, если есть сериализованные данные. Итак, сначала сделайте поиск, чтобы увидеть, какие данные выглядят и посмотрите, есть ли какие-либо конкретные поля, которые вы должны оставить из сценария находки / замены. Ваше обновление для этой таблицы будет выглядеть очень похоже на последний:

Update wp_1_postmeta
SET meta_value = REPLACE(meta_value,"www.oldurl.com","www.newurl.com")
WHERE meta_value LIKE "%www.oldurl.com%"

Если вы нашли поля, которые вам нужно исключить, изменить скрипт, как:

Update wp_1_postmeta
SET meta_value = REPLACE(meta_value,"www.oldurl.com","www.newurl.com")
WHERE meta_value LIKE "%www.oldurl.com%"
AND meta_name NOT IN ('meta_name_1', 'meta_name_2')

Таблица параметров должна быть сделана вручную - у вас слишком много потенциал, чтобы позволить что-то вверх, автоматизируя его. Ищите сайт SiteURL , Home и FileLupload_URL полей. Ищите все остальное, что, возможно, также сохранило значения и обновляйте их вручную.

Затем обновляйте WP_BLOGS и WP_SITE соответствующим образом.

Миграция MU - это материальные кошмары из них. Идите медленно, посмотрите на все, и, самое главное сделать все это на дубликат ваших основных данных для проверки первой. Пространство базы данных дешево, потерянные данные нет.

3
ответ дан 5 December 2019 в 15:23
поделиться

Соответствующие индексы и простые запросы будут обрабатывать проблемы с производительностью SELECT.

-121--4746460-

Можно выгрузить всю базу данных в файл .sql, заменить ее и импортировать обратно.

Для дампа базы данных в файл sql можно использовать команду mysqldump или phpmyadmin

mysqldump --opt -uUSERNAME -pPASSWORD -h MYSQLDOMAIN YOURDB > yourdbdump.sql

Чтобы заменить текст в файле .sql, выполните следующие действия:

sed -ie 's/old-domain.com/new-domain.com/g' yourdbdump.sql

Для восстановления

mysql -uUSERNAME -pPASSWORD -h MYSQLDOMAIN YOURDB < yourdbdump.sql
-121--3653541-

Вам нужна функция INSERT () .

0
ответ дан 5 December 2019 в 15:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: