Перенос базы данных на хостинг. Перенос базы данных MySQL на другой сервер

Многие задумывались, как перенести скрипты с базой данных MySQL на другой хостинг. Так вот, я написал в этой статье, как перенести Вашу базу данных, с помощью SSH/телнет и PHPMyAdmin"а.

Если Вы имеете доступ по телнет или SSH на оба сервера, то последовательность Ваших действий будет следующей:
Заходите по телнет/SSH на исходный сервер. Экспортируете содержание Вашей базы данных следующей командой:

mysqldump -uВашлогин -pВашпароль _mysql ВашабазаДанных > baza.sql

После выполнения этой команды, все содержание Вашей базы данных сохранится в файле baza.sql.

Затем Вам надо закачать полученный файл с Вашей базой данных на сервер получатель. Это можно сделать в том же сеансе телнет/SSH командой ftp, или используя любой предпочтительный для Вас клиент (сначала скачиваете файл baza.sql на свой компьютер, а потом закачиваете его на сервер получатель). После того, как файл Вашей базы данных оказался на сервере получателе, заходите на этот сервер по телнет/SSH. Загрузить Вашу базу данных на сервер получатель Вы можете, выполнив следующую команду:

mysql -uВашлогин -pВашпароль _mysql ВашабазаДанных < baza.sql

(пароли и логины и названия баз данных, Вы естественно, должны указать действительные для сервера-получателя). В результате Вы перенесете Вашу базу данных с одного сервера на другой, без каких-либо потерь.

Описанная выше методика может использоваться в тех случаях, когда Вы имеете доступ к обоим серверам по телнет или SSH и в тех случаях, когда Ваша база данных достаточно большая (несколько десятков тысяч записей). В тех случаях, когда Вы не имеете доступа к серверам (или к одному из них) по телнет или SSH или Вы не умеете работать в командной среде юникс и пользоваться телнет или SSH клиентом, то можно использовать следующую методику:
На сервере источнике заходите в скрипт работы с MySQL базами данных (Как правило, это PHPMyAdmin). Выбираете базу данных, предназначенную для переноса и в ее свойствах указываете "Просмотреть дамп (схему) БД" (Следует заметить, что конкретные названия пункты меню, могут отличаться от упомянутых здесь в связи с тем на разных серверах могут использоваться разные версии программы, и потому, очень желательно, ознакомиться с соответствующей документацией). Отмечаете галочками Нужные Вам пункты: "Только структуру", "Структура и данные", "Только данные" и отмечаете пункт "Послать". Когда Вы нажмете кнопку "Пошел" через какое-то время Вам будет предложено загрузить файл - это и будет содержание Вашей базы данных. Когда файл будет загружен на Ваш компьютер.

Алгоритм следующий:

  1. Выбираете нужную базу данных.
  2. Кликаете по пункту меню «Экспорт» в верхнем меню.
  3. Определяете способ экспорта. Учитывая то, что все настройки по умолчанию сохраняются, можно использовать «Быстрый» вариант. «Обычный» я выбираю только, если нужно сжать файл.
  4. Проверьте чтобы были выделены все таблицы базы WordPress для переноса.
  5. Если указан «Обычный» вариант, то можно определить компрессию при экспорте.
  6. В самом низу страницы кликаете «Ок».

В итоге приложение создаст дамп БД и предложит сохранить его на компьютере. Все настройки, как видите, устанавливаются изначально, и в 99% случаев ничего менять не нужно.

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

  1. Заходим в PhpMyAdmin и выбираем новую БД.
  2. В верхнем меню кликаете по пункту «Импорт».
  3. После нажатия на кнопку «Choose File» выбираете на своем компьютере SQL файл для импорта.
  4. Жмете «Ок» внизу страницы.

После успешного завершения процедуры увидите соответствующее сообщение, а справа под названием новой БД отобразится список созданных таблиц. На этом миграция wordpress базы завершена. После возвращаетесь к остальным этапам , если вы им занимались.

Плагины переноса базы данных в WordPress

В статье о я упомянул парочку модулей, которые помогают изменить доменное имя (и другую информацию) в базе сайта. Вносить правки вручную в PhpMyAdmin было бы крайне хлопотно, да и не всегда безопасно. Детально обозревать плагины не буду, а лишь представлю их основные преимущества.

Важно! Все три плагина, умеют работать с сериализованными данными (serialized data) и делать корректную замену информации в БД (с учетом длинны строки), например:

s:11:"hello world" станет s:9:"new world"

s:11:"hello world" станет s:9:"new world"

При выполнении SQL и правке напрямую через PhpMyAdmin могу быть ошибки.

Изначально позволял только вносить правки в БД, но в последних версиях разработчики значительно расширили его функции. Теперь вы также сможете скачивать дамп и восстанавливать базу, менять домен, префикс. Новый интерфейс сделали вообще отличным. В статьи чуть более детально расскажу о модуле, хотя здесь все предельно просто. Скачиваний — 100к+, оценка — 4.4.

Этот инструмент может использоваться не только при миграции WordPress базы, но и всего сайта. позволяет переносить медиа файлы, плагины, темы. Также вы можете запустить процедуру поиска и редактирования данных в БД. Отличительной особенностью является быстрая работа (дабы не нагружать хостинг провайдера), а также отсутствие необходимости установки дополнительных PHP расширений. Решение работает даже с PHP v5.2, в то время как предыдущее требует минимум PHP v5.4. Загрузок более 300 тысяч, оценка — 4.8.

Выполняет основные задачи по переносу базы данных в WordPress: экспорт дампа, поиск и замена инфы, сохранение SQL файлов на компьютере. Более 200тыс. скачиваний, оценка — 4.7. Бесплатной версии, в принципе, хватает, хотя конечно в PRO вас ожидаю более крутые фишки. Импортировать БД придется через PhpMyAdmin как я рассказывал в первом разделе.

Использование плагина Search and Replace

С этим модулем я сталкивался чаще всего, поэтому детальнее разберу его в качестве примера. Думаю, процесс переноса вордпресс базы в остальных вариантах аналогичный, в крайнем случае смотрите видеоинструкции в их описаниях на wordpress.org.

Итак. после Search and Replace и активации, все его функции находятся в одноименном пункте меню раздела «Инструменты». Здесь 4 основных направления:

  • Backup Database — создание бэкапа.
  • Search & Replace — поиск и замена информации.
  • Replace Domain URL — смена домена.
  • SQL Import — импорт.

В первом и последнем пунктах всего по одной кнопке «Экспорт/Имопрт», но, по сути, у вас есть все необходимое для полноценной миграции WordPress базы и сайта. Единственное нужно помнить, что импортируются данные в текущую, подключенную к проекту БД.

Переходим в раздел Replace Domain URL. Фактически в нем предусмотрена возможность замены старого домена на новый.

Эта фишка не избавит вас от остальных шагов в алгоритме но, как минимум, упростит задачу переноса базы данных в WordPress. Кроме того, вы можете поменять префикс таблиц, что тоже пригодится.

Вкладка Search & Replace помогает заменять информацию в БД.

  • Первым делом определяете старые и новые значений, после этого отмечаете таблицы, где должен производиться поиск и замена.
  • По умолчанию опция «Dry Run» включена — это значит, что действия будут происводиться в «тестовом режиме».
  • Если снять галочку, то появится 2 опции на выбор — импорт SQL запроса для внесения правок в БД или же непосредственно выполнение данного действия.

То есть, по сути, вы можете сделать: 1) тестовый прогон задачи, 2) реальную замену данных 3) получить SQL запрос, а после внедрить его через PhpMyAdmin или 4-тую вкладку модуля. Отличная гибкость!

Итого. Надеюсь информации по переносу базы данных в WordPress вам хватит дабы самостоятельного провести эту процедуру. Сложного, в принципе, ничего нет, но при работе с БД всегда нужно быть предельно аккуратными — как минимум, создавайте бэкапы перед началом работы. Все три плагина отлично справляются со своей задачей, но Search and Replace мне лично нравится больше всего — простой, гибкий, без лишних деталей.

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

Какие способы бывают?

1 - при помощи интерфейса phpMyAdmin.

2 - при помощи панели управления хостинг-провайдера.

3 - при помощи сторонней программы.

Какой способ лучше?

Мы рекомендуем первый, т.к. его схема проста, и используется большинством вебмастеров. Третий способ мы не рекомендуем использовать! Никогда не доверяйте содержимое своего сайта сторонним программам, к тому же от непонятных разработчиков. Еще можно использовать второй способ, но его алгоритм очень разнится, и зависит от панели управления хостера. Поэтому, мы детально рассмотрим первый вариант, и расскажем как грамотно перенести базы данных MySQL, без потери и повреждения данных.

Создаем базу данных на новом хостинге

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

1 - Ищем раздел “MySQL”, “Базы данных” или что-то похожее.

2 - В нем нажимаем “Создать”.

3 - Вписываем название базы данных, прикрепляем к ней пользователя (обычно пользователь БД уже создан, если нет, то создайте его и установите самые большие права) и вводим пароль для БД.

4 - База данных создана, но она пока что пустая.

Экспортируем БД со старого хостинга

Сейчас мы воспользуемся тем, что называют дамп базы данных. Т.е. сохраним текущую БД с сервера, к себе на компьютер. Для этого нам понадобится интерфейс phpMyAdmin, который нужно отыскать в личном кабинете хостинг-провайдера, у которого находится Ваш текущий сайт. Опять же единого алгоритма нет, поэтому приводим общую схему:

2 - Слева в углу выберите свою базу данных (ту, которую вы собираетесь экспортировать на компьютер, чтобы потом перенести на другой хостинг).

4 - Возможно Вас попросят выбрать способ экспорта “Обычный” (много настроек) или “Быстрый” (мало настроек). Не имеет значения какой выбирать, главное изменить только те настройки, которые мы описываем ниже.

5 - Нужно выбрать все таблицы, нажав на кнопку “Выделить все”.

7 - На всякий случай, запоминаем кодировку, но не трогаем ее.

8 - Жмем “Ок” и сохраняем файл с БД себе на компьютер. Обычно сохраняемый файл имеет расширение.sql.

Импорт БД на сервер нового хостера

1 - Таким же образом ищем phpMyAdmin на новом хостинге.

2 - В нем выбираем нужную базу данных (мы ее создавали в начале статьи, и она осталась пустой).

3 - Жмем на вкладку “Импорт”.

4 - Нажимаем “Обзор” и выбираем сохраненную на компьютере базу данных.

5 - Проверьте, чтобы кодировка совпадала с той, в которой Вы сохраняли БД.

6 - Больше ничего не меняете, жмете “Ок” и Ваша база данных импортируется на новый хостинг.

Какие бывают проблемы?

1 - При импорте БД в ней не должно быть запросов типа «CREATE DATABASE, /*!40101 SET @OLD ». Чтобы проверить их наличие - откройте файл БД на своем компьютере любым текстовым редактором (лучше всего подходит Notepad++) и через Ctrl+А поищите эти запросы. Если найдете, то просто удалите их, и попробуйте снова импортировать БД.

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

Под переносом базы данных будем понимать процедуру смены сервера InterBase как в сторону увеличения порядкового номера, так и в сторону его уменьшения, а также переход на другую операционную систему или аппаратную платформу. В некоторых источниках процедуру переноса базы данных называют миграцией.

К настоящему времени используются версии InterBase от 4.x до 6.x, причем в шестой версии база данных может быть создана в диалекте 1 или в диалекте 3. В общем случае переход от младшей версии InterBase к старшей не требует каких-то специальных действий, и базы данных работают нормально, но при этом пользователь не может воспользоваться дополнительными услугами, которые предоставляются старшей версией. В случае же выполнения процедуры переноса базы данных можно будет воспользоваться дополнительными услугами. Что же касается диалектов версии 6.x, то в них некоторые типы данных интерпретируются по-разному. Например, в ранних версиях InterBase и в диалекте 1 версии 6.x определен один тип даты Date, значение которого в начале содержит дату, а затем время. В диалекте 3 версии 6.x определены три типа - Timestamp, который полностью соответствует типу Date, определенному в ранних версиях; тип Date, который содержит значения только дат, и тип Time, который содержит значения времени.

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

Каждая операционная система собственным способом интерпретирует каждый тип данных. При инсталляции сервера InterBase любой версии выполняется его настройка на соответствующую операционную систему и аппаратную среду.

Таким образом, каждая база данных имеет «привязку» к версии сервера InterBase, к операционной системе и аппаратной среде.

Этим и объясняется необходимость выполнения процедуры переноса базы данных.

Из сказанного выше становится ясно, что создание резервной копии базы данных с включением параметра Transportable приводит к включению в файл резервной копии сведений о версии InterBase операционной системы и аппаратной среды, в которых создавалась и эксплуатировалась база данных.

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

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

При переносе базы данных на две или три версии выше (или ниже) необходимо процедуру переноса выполнить для каждой промежуточной версии ІМегВазе.

Для смены диалекта (например, с первого на третий) надо либо пересоздать базу данных, либо воспользоваться утилитой у/іх.

Алгоритм процедуры переноса базы данных

а. Создать файл резервной копии базы данных. Файл создается одним из способов, рассмотренных выше. Желательно проверить, корректно ли создался файл резервной копии. Для этого на том же персональном компьютере развернуть в другом каталоге базу данных и проверить ее работоспособность.

б. Создать файл копии зарегистрированных пользователей на сервере InterBase. Следует помнить, что сведения о пользователях хранятся в файле isc4.gdb на сервере InterBase и в самой базе данных. Для копирования файла iscA.gdb можно воспользоваться той же самой утилитой gbak.

Пример 12.7. Копирование файла зарегистрированных пользователей базы данных.

gbak -b -user SYSDBA -password masterkey C:IBServeisc4.gdb C:isc4.gdk

в. Переустановить сервер InterBase или перейти на другой персональный компьютер. После переустановки сервера на персональном компьютере (или переходе на другой персональный компьютер) необходимо файл iscA.gdb восстановить с помощью той же утилиты gbak.

Важно помнить, что при переходе на высшую версию InterBase все клиенты, зарегистрированные в следующей низшей версии InterBase, будут работать нормально (но без дополнительных возможностей), а в более старших - неустойчиво.

Для таких клиентов целесообразно переустановить клиентскую часть InterBase на персональных компьютерах клиентов.

Пример 12.8. Перенос файла зарегистрированных пользователей базы данных.

gbak -с -user SYSDBA -password masterkey C:isc4.gdk C:isc4.gdb

В примерах 12.7 и 12.8 имелось в виду, что выполняется замена версии InterBase на одном компьютере.

г. Восстановить (перенести) базу данных одним из способов, описанных выше.

Предложенный выше алгоритм надежно работает при повышении версии InterBase. Если же надо понизить номер версии InterBase , то для выполнения этой операции необходимо иметь два персональных компьютера: первый - с работающей базой данных на старшей версии InterBase, второй - с установленным сервером InterBase низшей версии. Запускаем процедуру создания резервной копии базы данных (п. «а» алгоритма) со второго компьютера. При этом будет создан файл резервной копии в низшей версии. Но возможны следующие варианты:

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

Для надежной работы базы данных необходимо обеспечить одинаковую версию и диалект сервера InterBase и клиентской части InterBase у каждого клиента.

Клиенты всех версий InterBase , в отличие от клиентов, работающих с диалектом 3 версии 6.x, не имеют доступа:

К ключевым словам:

CURRENTDATE CURRENTTIME CURRENT_ TIMESTAMP COLUMN

TIMESTAMP

К идентификаторам, заключенным в кавычки.

Наши файлы сайта благополучно закачиваются на хостинг. Не будем терять время и перенесём существующую базу данных (БД) с локалки на сервер.

Для этого заходим в PhpMyAdmin. Кто забыл где это находится, посмотрите .

Видим нашу БД (mebelip) и кликаем по названию.

Перед нами открылось окно с множеством данных, которые новичку абсолютно ничего говорят. Но это нам сейчас и не надо.

Мы просто нажимаем на вкладку "Экспорт".


Напомню, по умолчанию OpenServer открывается в браузере Хром. Поэтому в левом, нижнем углу видим скачанный файл. Запомните, куда Вы сохранили его, в скором времени он нам понадобится.

Кликаем по нему.


Ради интереса, можете посмотреть, какая "секретная" информация находится в нём. Открывается простым "Блокнотом".


Всё, с локальным сервером закончили. Переходим в админ панель Вашего аккаунта на хостинге.

Здесь нас интересует вкладка "MySQL".


Нажимаем кнопку "Добавить MySQL пользователя". По умолчанию, он уже создан. Но я рекомендую создать нового, конкретно для данного сайта.

В будущем, когда у Вас здесь будет уже не один сайт, это поможет избежать путаницы.


Появилось всплывающее окно, в нём прописываем имя пользователя. Оно состоит из двух частей, первая – host1234567 (цифры конкретно будут Ваши), неизменная часть, а вот во вторую, пишем свою информацию.

У меня, для дальнейшего удобства, это будет "meb". Так я не запутаюсь, и точно буду знать, что это относится к мебельному сайту.

Пароль можно поставить свой.


Видим, появился новый пользователь, но к нему не привязана БД.

Теперь создадим непосредственно саму БД.

Нажимаем на вкладку "База данных MySQL".


Кнопка "Добавить базу данных MySQL".

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


Появилась БД, прикреплённая к пользователю, которого мы перед этим создали.

Запишите где-нибудь эту информацию, т.е. имя пользователя и БД, и пароль, если Вы его меняли. Всё это понадобится в следующем уроке.

Нажимаем на "phpMyAdmin".


Слева, нажимаем на БД установленную по умолчанию.


Находим нашу, вновь созданную, и так же открываем её.


Находим вверху вкладку "Импорт" – клик.