Данная статья может оказаться полезной, если у вас есть веб-сайт, который использует систему управления контентом (Joomla, WordPress, OpenCart и т.д.), и вы решили перенести его на другой сервер . Для этого требуется не только перенос файлов сайта, но и перенос . Перед тем, как приступить к переносу веб-сайта, необходимо подобрать хороший и заказать его, чтобы получить доступ к новому хостинговому аккаунту. Мы, например, предлагаем отдельный , Joomla и PrestaShop. Если вы хотите перенести сайт на новое имя и вам нужно , не торопитесь. Наш план виртуального хостинга S4 предоставит вам домен и в подарок. Если для вашего сайта недостаточно виртуального хостинга, вы всегда можете заказать VPS или .
Для переноса базы данных необходимо сначала создать ее дамп, то есть разместить содержимое в отдельный sql-файл. Делается это в меню phpMyAdmin на хостинге, откуда вы переносите сайт. Зайдите в phpMyAdmin, выделите слева базу данных, которую необходимо перенести, и нажмите на кнопку «Экспорт » в верхнем меню.
Откроется диалоговое окно, в котором обязательно выберите тип базы SQL, после чего нажмите кнопку ОК . Дождитесь пока файл базы данных скачается на ваш компьютер.
Теперь этот файл необходимо корректно разместить на нашем хостинге. Для этого необходимо сначала создание базы данных MySQL в cPanel аккаунте, добавление к ней пользователя и назначение ему привилегии. Ниже по порядку расписано, как создать базу данных в MySQL.
Зайдите в cPanel и найдите раздел «Базы данных », выберите «».
Откроется новое окно. На шаге 1 введите имя базы. Обратите внимание на то, что имя БД всегда будет с префиксом, первая половина имени будет содержать в себе имя cPanel аккаунта.
После ввода имени нажмите на кнопку «Следующий шаг ».
На шаге 2 необходимо создать пользователя MySQL к базе и задать пароль для него. После ввода всех данных нажмите кнопку «Создать пользователя ».
При настройке привилегий созданного пользователя выберите опцию «ВСЕ ПРАВА » и переходите к следующему шагу.
Если в предыдущих шагах все было сделано правильно, мастер баз данных оповестит вас об успешном завершении создания БД на хостинге.
Созданную БД вы теперь сможете найти в списке доступных баз MySQL в одноименном меню контрольной панели.
Теперь для восстановления базы данных MySQL импортируем в созданную базу содержимое сохраненного со старого хостинга файла с расширением .sql . Для этого на главной странице cPanel выберите пункт меню “phpMyAdmin ” в том же разделе “Базы данных ”. В открывшемся окне в меню слева выберите только что созданную БД и нажмите на вкладку «Импорт » в верхнем меню.
Нажмите кнопку «Выберите файл », в диалоговом окне выберите ранее сохраненный sql-файл и загрузите его на хостинг. Убедитесь, что выбран тип кодировки utf-8. После нажатия кнопки ОК дождитесь сообщения об успешном импорте базы данных.
На этом все действия, необходимые для переноса базы данных на другой , выполнены.
Идея статьи, создать качественное руководство по установке и работе с программой mysqldump. Применяя, множество примеров и собрав все полезные опции и параметры по работе с этой утилитой. Все в одну статью сложно вместить, поэтому все будет кратко и по сути. Если кто-то, чего-то недопонимает, обращаемся в комментарии к статье.
Разделы:
Установка mysqldump:
Что такое mysqldump?
MySQLdump – это серверное приложение, которое позволяет делать резервное копирование (далее дамп) баз данных и сохранять их в отдельном файле. При этом можно осуществлять гибкие настройки дампа: несколько или все базы данных, архивация в gzip, добавление команд lock, drop и многое другое. Также возможнен обратный импорт резервных копий БД. Осуществлять можно с помощью PHP, но это неприемлемо для больших проектов, которые имеют большой вес данных.
Эта программа очень полезна при реализации экспорта и импорта данных с БД. Она может быть стандартно установленной на вашем хостинге (точнее mysql сервере). Но для того, чтобы отточить мастерство работы с mysqldump и научится устанавливать, можно поставить ее на denwer. Что мы сейчас и сделаем.
Скачать mysqldump
Вы всегда можете скачать программу mysqldump у нас на сайте, при этом скачивание приложения совершенно бесплатно. Скачайте mysqldump по прямой ссылке ниже.
Как установить mysqldump?
Устанавливать будем на локальный сервер Denwer. Установить приложение легко и просто, для этого следуйте ниже предоставленным инструкциям и скриншотам.
1.Копируем файл mysqldump.exe в папку с денвером:
D:\WebServers\usr\local\mysql5\bin\
При этом у вас может быть немного другое название папки mysql5, например mysql-5.1 или немного
видоизмененное. Поэтому, для большей ясности, ниже предоставлен скриншот:
2.Запускаем денвер
Наверняка вы и сами знаете как запустить Denwer.
3.Запускаем консоль:
Пуск->Выполнить->
cmd.
exe
или в ОС Windows
7: Пуск->Поиск->Вводим
cmd.
exe->
Enter
, как
показано на скриншоте:
4.Тестируем:
С помощью команд в консоле, переходим на виртуальных диск денвера (у меня W:\) и в папку с приложением mysqldump. Для подтверждения выполнения команды жмем Enter.
Вводим команды:
W: - заходим на виртуальный диск денвера
cd usr\ local\ mysql5\ bin – заходим в папку с приложением
mysqldump -uroot имя_вашей_бд>имя_файла.sql – тестируем, делаем дамп произвольной базы данных в файл, который сохранится в папку bin.
У меня установка выполнена успешно, надеюсь у вас тоже. В папке bin находим файл резервной копии БД. Чтобы научится более широко использовать программу, читайте следующие разделы статьи.
Начало работы: экспорт и импорт БД
Экспорт базы данных
Мы уже установили приложение и научились пользоваться консолем. Тестовый дамп мы уже делали. Теперь сделаем простой дамп базы данных в нужный нам каталог. Для этого я создал ранее используемую БД под именем “test”. Она находится на локальном сервере denwer. Ниже предоставлены пошаговые команды консоля для дампа бд test в нужную папку и нужный файл.
W: cdusr\local\mysql5\bin mysqldump -uroot test>D:\test\easydump.sql
На скриншоте ниже показан дамповый файл в папке тест:
Экспорт выполнен успешно. Теперь попробуем импортировать этот файл обратно на наш сервер.
Импорт базы данных
Для импорта БД, очищаем БД в phpmyadmin, и пользуемся следующей командой в cmd.exe:
Mysql -uroot test Важное замечание: если при экспорте мы использовали mysqldump…
, то при импорте нужно начинать команду с mysql
. В этом примере заключается базовое использование
приложения mysqldump, для
создания резервных копий (бэкапа) баз данных. Еще более команд и примеров, вы
найдете в разделе и статье . Ниже предоставлены наиболее используемые примеры
использования mysqldump.
С помощью которых можно не только делать бэкап, но и добавлять некоторые
параметры резервного копирования: сжатие с помощью gzip, добавление даты бэкапа, делать
дамп только нескольких таблиц или структуры БД, использовать гибкие настройки.
Эти параметры позволяют увеличить скорость выполнения дампа и экономно
использовать место дискового пространства. -u
или --user=...
- имя пользователя -h
или --host=...
- удаленный хост (для
локального хоста можно опустить этот параметр) -p
или --password
- запросить пароль database
- имя
экспортируемой базы данных /path/to/file/dump.sql
- путь и файл для
дампа Делаем дамп нескольких баз данных, для этого используем
атрибут --databases или
сокращенно –B, смотрите
на примере ниже: Mysqldump -uroot -h82.82.82.82 -p -B database1 database2 database3 > databases.sql
Если вы желаете создать дамп всех баз данных, необходимо использовать
параметр –all-databases или
–А в сокращенном виде, смотрим пример: Mysqldump -uroot -h82.82.82.82 -p -A > all-databases.sql
Для этого необходимо использовать параметр --no-data как
показано на примере ниже: Mysqldump --no-data - uUSER -pPASSWORD DATABASE > /path/to/file/schema.sql
Как уже упоминалось раньше, эти атрибуты уменьшают итоговый
размер файла и ускоряют процесс резервного копирования. А точнее: -Q
оборачивает
имена обратными кавычками -c
делает полную
вставку, включая имена колонок -e
делает
расширенную вставку. Этот пост содержит наиболее часто используемые команды для создания или развертывания резервных копий баз данных MySQL. Ну, просто поднадоело мне постоянно гуглить ключи, когда они мне «вдруг» понадобятся. Немного теории.. MySQLDUMP это инструмент, который позволяет создавать резервные копии баз данных MySQL. На выхлопе мы получаем.sql файл с дампом базы данных. В данном файле содержится Sql код в виде текста, т.е. его всегда можно открыть текстовым редактором, чтобы посмотреть, отредактировать и т.д… Кстати, есть еще такая утилита, как MySqlHotCopy, которую лучше всего использовать для создания горячих резервных копий, так как она ставит базу на блокировку и копирует файлы БД в нужное место. Но эта штука будет работать только если ее запускать на самом сервере, работает только с MyISAM и Archive-таблицами и больше подойдет для больших БД. Но, в общем-то речь не о ней… может напишу о «горячей копии» в другой статье… Начнем с самой распространенной команды создания дампа сайта site.ru в файл site.ru: Mysqldump -uroot -h10.30.30.10 -p site_ru > site_ru.sql
Чтобы сделать резервную копию нескольких БД, можно воспользоваться ключом -B
и указать несколько БД, вот пример: Mysqldump -uroot -h10.30.30.10 -p site_ru site2_ru site3_ru > sites.sql
Если ситуация не дает времени на раздумья, и нужно делать резервную копию всех баз данных, то в данной ситуации можно воспользоваться ключом —all-databases
, вот пример: Mysqldump -uroot -h10.30.30.10 -p -A > all-db.sql
Кстати, есть нюанс. Если вы делайте резервную копию базы данных на работающем, и причем, активно используемом сервере, то вы рискуете получить нарушение логических связей. Есть пара способов избежать этого. Первый способ заключается в блокировке таблиц, т.е. можно воспользоваться параметром —lock-tables, вот пример: Mysqldump -uroot -h10.30.30.10 -p --lock-tables site_ru > site_ru.sql
Но в момент создания резервной копии запросы клиентов будут подвешены.. а следовательно могут быть тайм-ауты. Второй способ это использование ключа —flush-log при создании резервной копии. Этот ключ закроет старый лог действий и создаст новый. Если кто-то что-то запишет в процессе создания копии — это отразится в начале журнала и можно будет перенести это изменение в базу. Далее, чтобы наверняка, после окончания создании резервной копии, нужно выполнять команду mysqladmin -flush-logs и оставлять копию предпоследнего бинарного журнала. Тут уже будет править утилита «mysql». Вот пример: Mysql -uroot -h10.30.30.10 -p site_ru < site_ru.sql
Еще один способ, более педантичный: Mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 35
Server version: 5.6.35-1+deb.sury.org~xenial+0.1 (Ubuntu)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type "help;" or "\h" for help. Type "\c" to clear the current input statement.
mysql> use site_ru;
mysql> source site_ru.sql;
Ну а если у вас БД сохранена в gz-архив, то можно скомбинировать команды mysql и zcat вот так: Zcat site_ru.sql.gz | mysql -uroot -h10.30.30.10 -p site_ru
Например нам нужна база данных на dev зону, так сказать песочницу, а размер основной БД очень велик. Можно воспользоваться ключом —where=»true limit 150″, которому мы явно укажем выборку данных не более 150 записей. Вот пример: Mysqldump -uroot -h10.30.30.10 -p --where="true limit 150" site_ru > site_ru.sql
Если нам нужна только структура без данных, то можно воспользоваться ключом —no-data, вот пример Mysqldump -uroot -h10.30.30.10 -p --no-data site_ru > site_ru.sql
Если нам нужна копия только одной таблицы, то вот пример команды: Mysqldump -u root -p testdb tablename > testdb_table_backup.sql
Если нам нужна копия триггеров, процедур и событий (встроенного планировщика), то вот пример: Mysqldump --no-create-info --no-data --triggers --routines --events -uroot -p site_ru | gzip > ~/database.sql.gz
Еще можно сразу создать заархивированный дамп базы. Сделать это можно вот так: Mysqldump -uroot -p site_ru | gzip > /path/to/site_ru.sql.gz
И еще можно указать дату создания архива, вот так: Mysqldump -uroot -p site_ru | gzip > `date +/path/to/site_ru.sql.%Y%m%d.%H%M%S.gz`
Ниже будут приведены наиболее популярные ключи mysqldump: Развернуть список... Дамп и восстановление базы данных MySQL довольно просто и удобно делать удаленно через SSH или прямо через консоль сервера. Удаленно, это можно делать используя программы Putty/Kitty. Также указанные ниже примеры Вы можете выполнять и на Windows запустив командную строку ‘cmd
‘. Ниже приведены примеры о том, как создавать дампы базы данных MySQL и затем восстанавливать их при необходимости, например для Вашего сайта, интернет-магазина или какого либо другого проекта. Для того, чтоб выполнять данные команды, подключитесь удаленно к Вашему серверу через SSH используя одну из перечисленных выше программ. После подключения и авторизации к серверу/хостингу, Вы можете вводить приведенные ниже команды. # Бекап одной базы данных в файл dump_file.sql
mysqldump -uroot -p your_base > dump_file.sql
# На windows дамп лучше всего создавать немного другой командой, которая предотвращает
# случайное затирание строк дампа из за конвертации символов перевода строки "\r\n" в "\n"
mysqldump -uroot -p your_base -r dump_file_utf8.sql
# Если Вам нужен бекап только отдельных таблиц, а не всей базы данных
# (указываем наименования таблиц через пробел после названия базы данных)
mysqldump -uroot -p your_base TABLE1 TABLE2 TABLE3 > dump_file.sql
# Если нужно создать бекап только структуры базы данных без самих данных
mysqldump -uroot -p --no-data your_base > dump_file.sql
# Бекап всех баз данных в файл текущая_дата.gz
mysqldump -uroot -p --all_databases | gzip -c > "date "+%Y-%m-%d"".gz
# Бекап, где для каждой записи создается отдельный INSERT
# и с явным указанием кодировки базы данных UTF-8
mysqldump -uroot -p --default-character-set=utf8 your_base --extended-insert=FALSE | gzip -c > "date "+%Y-%m-%d"".gz # Бекап одной базы данных в файл dump_file.sql
mysqldump
-
uroot
-
p
your_base
>
dump_file
.
sql
# На windows дамп лучше всего создавать немного другой командой, которая предотвращает
# случайное затирание строк дампа из за конвертации символов перевода строки "\r\n" в "\n"
mysqldump
-
uroot
-
p
your_base
-
r
dump_file_utf8
.
sql
# Если Вам нужен бекап только отдельных таблиц, а не всей базы данных
# (указываем наименования таблиц через пробел после названия базы данных)
mysqldump
-
uroot
-
p
your_base
TABLE1
TABLE2
TABLE3
>
dump_file
.
sql
# Если нужно создать бекап только структуры базы данных без самих данных
mysqldump
-
uroot
-
p
--
no
-
data
your_base
>
dump_file
.
sql
# Бекап всех баз данных в файл текущая_дата.gz
mysqldump
-
uroot
-
p
--
all_databases
|
gzip
-
c
>
"date "+%Y-%m-%d""
.
gz
# Бекап, где для каждой записи создается отдельный INSERT
# и с явным указанием кодировки базы данных UTF-8
mysqldump
-
uroot
-
p
--
default
-
character
-
set
=
utf8
your_base
--
extended
-
insert
=
FALSE
|
gzip
-
c
>
"date "+%Y-%m-%d""
.
gz
В приведенном выше примере, для создания бекапа используется утилита mysqldump
, которая входит в состав mysql. Далее указываются параметры для создания бекапа базы данных, которые разберем подробнее: "date "+%Y-%m-%d"" "date "+%Y-%m-%d""
Внимание!
Если Вы указываете только имя файла, то он будет сохранен в той же директории, относительно которой Вы выполняете данную команду. Т.е. если Вы видите в строке приглашения ввода команд что-то вроде #
, где root@dvs
это логин и имя сервера, то файл будет создан в директории /home
. Чтобы изменить сохранение файла по другому пути, укажите вместо имени полный путь для сохранения файла, например: /var/www/backup/dump_file.sql
. Теперь рассмотрим с Вами обратный процесс восстановления базы данных из файла дампа. Данное действие выполняется при помощи программы mysql. Рассмотрим сразу же пример.MySQLdump примеры
Создание дампа
mysqldump –uUSER -h82.82.82.82 -pPASSWORD DATABASE > /path/to/file/dump.sql
Создаем структуру
базы без данных
Создаем дамп только
одной или нескольких таблиц БД
mysqldump -uUSER -pPASSWORD DATABASE TABLE1 TABLE2 TABLE3 > dump.sql
Создаем дамп и
архивируем его в
gzip
mysqldump -u USER -pPASSWORD DATABASE | gzip > /path/to/outputfile.sql.gz
Создаем дамп с
указанием даты в имени файла
mysqldump -uUSER -pPASSWORD DATABASE | gzip > `date +dump.sql.%Y%m%d.%H%M%S.gz`
Используем
дополнительные атрибуты
mysqldump -Q -c -e -uUSER -pPASSWORD DATABASE > /path/to/file/dump.sql
Восстановить такой дамп можно с помощью утилиты mysql через STDIN.
Восстановить данные можно путем копирования сохраненных файлов в каталог данных MySQL.Создание резервной копии базы данных
Подробнее о ключах:
Восстановление резервной копии базы данных
Еще варианты использования mysqldump
Ключи для использования mysqldump
Создание дампа базы данных MySQL
после этой строки в примере указывается расширение файла ‘.gz
‘. В результате будет создан файл вида ‘2014-11-15.gz
‘.
Восстановление базы данных из файла дампа MySQL