Как правильно перенести базу данных MySql Wordpress?

305
06 июля 2017, 01:25

Обычно переносил сайты на wordpress путем копирования файлов и дампа базы данных с заменой url в самой, бд и правкой wp-config. Но сейчас потребовалось один сайт перебросить на локальный сервер и поработать над ним, как при проделывании этих операций весь сайт поплыл, все блоки, слайдер отказался работать и пр.

Порывшись в гугле, нашел отличный скрипт для "правильной" правки бд: Safe Search and Replace on Database with Serialized. И вроде бы все должно было быть супер, но я никак не пойму что я упустил?

Скопировал файлы wordpress на OpenServer, поправил wp-config, бд не трогал, все как есть импортировал в новую бд, затем запустил скрипт и ввел замену url на локальный. После всех операций сайт все равно открывается по старым url из инета, а не на локалке. Подскажите где я туплю?

P.S. Подсказали тут сделать дамп бд на рабочем сайте, потом в админке поменять адрес сайта, потом снова сделать дамп, и сверху залить предыдущий, но теперь и ориг. сайт перестал работать.

Answer 1

P.S. Подсказали тут сделать дамп бд на рабочем сайте, вотом в админке поменять адрес сайта, потом снова сделать дамп, и сверху залить предыдущий,

О ужас..

Порядок действий (всё уже на локальном, а не рабочем!):
1. Заливаешь РОДНОЙ дамп в локальную базу.
2. Переносиш файлы ВП и меняешь в конфиге данные конекта к базе. На локальный сайт не заходишь!!!!
3. Заливаешь скрипт на локальный домен.
4. Скриптом меняешь ПУТИ к файлам.
5. Скриптом меняешь вхождения домена. Осторожно, учитывая разные формы использования - с пртоколом, с/без www, с последним слешем, в мылоадресах и тд.
6. Профит!

Но гораздо проще и безопаснее использовать плагины для миграции. Напр дубликатор https://wordpress.org/plugins/duplicator/

И главное! Никаких SQL-запросов в базу. Миграции либо скриптом, либо плагинами.

Answer 2

С базой MySQL для WordPress я, например, работаю следующим образом.

Создание дампа

mysqldump -Q --max-allowed-packet=1M --extended-insert=false -u DBUser -p DBName > db_dump.sql

Ключи -Q --max-allowed-packet=1M --extended-insert=false не обязательны, разумеется, но могут помочь на загруженном хостинге.

После -p можно без пробелов указать пароль.

Импорт дампа

mysql -uDBUser -p DBName < db_dump.sql

Смена URL на сайте

UPDATE wp_options SET option_value = replace(option_value, 'http://domain.ru', 'http://newdomain.ru') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'http://domain.ru','http://newdomain.ru');
UPDATE wp_posts SET post_content = replace(post_content, 'http://domain.ru', 'http://newdomain.ru');

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

READ ALSO
В чем заключается ошибка в SQL запросе?

В чем заключается ошибка в SQL запросе?

Почему этот запрос выдает ошибку (#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'of France’ AND Countriesname = ‘France’...

250
Хранить json в бд?

Хранить json в бд?

Мне нужно, чтобы валюты обновлялись в реальном времениУ меня есть сервис openexchangerates

237
Jackson.Парсинг простой, а не JSON строки

Jackson.Парсинг простой, а не JSON строки

Интересует, можно ли скормить обычную строку Джексону? И потом уже построить 2 списка , по значениям? Вот строка которую я получил, после парсинга...

320
No suitable driver found for jdbc:oracle:thin

No suitable driver found for jdbc:oracle:thin

Всем привет, подскажите новичку пишу тест с иcпользованием запросов к оракловой базе - использую ojdbc6jar, пока тесты запускались руками из Idea проблем...

380