Экспорт и импорт данных из mysql. Экспорт базы данных (PHPMyAdmin)

При переносе сайта с локального сервера на хостинг, одной из обязательных процедур является экспорт/импорт БД (базы данных). Поэтому, в этой статье я попытаюсь, как можно более подробно описать процесс экспорта и импорта базы данных с локального сервера, то есть с веб-интерфейса PHPMyAdmin версии 3.2.3 на хостинг.

Первое, что нужно сделать, это запустить локальный сервер, в данном случает это Denwer. После запуска Denwer нужно открыть браузер и в браузерной строке прописать: «http://localhost/tools/phpmyadmin», после чего перед Вами откроется окно (Рис.1) с созданными ранее базами данных .

Рис.1

Далее нужно выбрать базу данных, которую мы будем экспортировать, в моем случае это БД с названием Mybd. Базу данных можно выбрать, кликнув по ней в левой части окна браузера, где написано «Please select a database» (Рис.2) .


Рис.2

После выбора нужной базы данных, откроется окно со структурой БД. В верхнем меню есть пункт «Export» с помощью которого, мы будем экспортировать БД на компьютер, чтобы потом импортировать её на хостинг. И так, переходим по пункту «Export» (Рис.3) .


Рис.3

В открывшемся окне нужно произвести некоторые измерения (Рис.4) , а именно: в блоке «Export» нужно выбрать все таблицы базы данных, нажав по пункту «Select All» и поставить галочку напротив пункта SQL , этот пункт отвечает за тип файла, который будет экспортирован. Также, необходимо поставить галочку напротив пункта «Save as file» , который обеспечит сохранение БД в файле. Остальные настройки менять не нужно, просто нажимаем кнопку «Go» .

Рис.4

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

Также, нужно сменить кодировку файла на UTF-8 без BOM, для изменения кодировки я использую текстовый редактор Notepad++ (Скачать ) . С помощью этой программы открываете файл базы данных и в меню «Кодировка» выбираете «Преобразовать в UTF-8 без BOM» (Рис.5) , после чего сохраняем и закрываем.


Рис.5

Данная процедура подразумевает перенос данных из одной базы данных (А) в другую (Б). Как правило база данных Б находится на хостинге (или на Денвере), а база данных А, находится на компьютере пользователя и представляет из себя файл с расширением sql. У базы данных А есть еще одно название - Dump.

Как импортировать базу данных?

Импорт базы данных MySQL с помощью SSH

Этот способ используется достаточно редко, но мы его опишем. Для начала залейте БД из которой будет производится импорт на сервер хостинг-провайдера, где хранятся файлы вашего сайта. Далее для импорта базы данных используется команда:

mysql -uUSERNAME -pUSERPASSWORD DBNAME < DUMPFILENAME.sql

mysql --user=USERNAME --password=USERPASSWORD DBNAME < DUMPFILENAME.sql

Вместо слов написанных большими буквами подставляем:
USERNAME - имя пользователя базы данных, например uhosting_databaseuser;

USERPASSWORD - пароль пользователя БД, например Rjkweuik12;

DBNAME - имя базы данных, в которую будет производится импорт, например uhosting_databasename

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

Базы данных (или сокращено бд) на большинстве сайтов имеют размер (вес), равный нескольким десяткам Мб (мегабайт). Первоначальный размер базы данных на старте разных проектов зависит от структуры самого сайта (CMS), дальше же их вес увеличивается с каждым появлением новой записи.

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

Мне же довелось поработать с несколькими сайтами, размер баз которых превышал 500 Мб (магабайт), а на некоторых достигал даже 2 Гб (гигабайт). Поскольку стандартными методами базы данных такого объема переносятся с трудом (из-за лимитов хостинга и браузера), то я поделюсь с вами несколькими рабочими способами, которые помогут вам в решении подобных задач (перенос больших баз данных).

Экспорт (скачивание) баз данных MySQL большого размера через Sypex Dumper

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

«Sypex Dumper» – программный продукт, написанный на языке PHP, позволяющий работать с базами данных без использования phpMyAdmin. В преимущества «Sypex Dumper» входят:

  1. Мультиязычность (поддерживает множество языков).
  2. Есть бесплатная версия скрипта (для наших задач этого вполне хватит).
  3. Высокая скорость выполнения задач.
  4. Работа с большими базами данных.
  5. Удобный и понятный интерфейс.
  6. И множество других интересных «фишек».

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

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

1. бесплатно с нашего сайта.

2. sxd удобным для вас способом.

3. Далее, перейдите по адресу (где your_site.ru Войти ».

4. На открывшейся странице (при успешной авторизации), жмете 1 раз на раздел «Экспорт » в верхнем меню . Если пользователю доступны несколько баз данных – выбираете ту, которую будем экспортировать (скачивать) из выпадающего списка. Остальные настройки можно оставить без изменений и нажимаете на кнопку «Выполнить ».


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

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


Помимо этого, все экспортируемые базы будут храниться на вашем сайте по пути /sxd/backup/ . Если сохранение базы завершается ошибкой – проверьте, что для папки backup стоят права на запись 777.

На этом экспорт (скачивание) базы данных закончен.

Импорт (загрузка) баз данных MySQL большого размера через Sypex Dumper

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

1. бесплатно с нашего сайта.

2. Распакуйте архив и закачайте на сайт папку sxd удобным для вас способом.

3. В папку /sxd/backup/ загружаете ранее полученную (скачанную) базу данных.

4. Далее перейдите по адресу http://your_site.ru/sxd/index.php (где your_site.ru – домен вашего сайта), после чего перед вами откроется форма для ввода данных. В ней вы указываете данные того пользователя, который имеет права на управление необходимой вам базой данных и жмете «Войти ».

5. На открывшейся странице (при успешной авторизации) жмете 1 раз на раздел «Импорт » в верхнем меню . Если пользователю доступны несколько баз данных – выбираете ту, в которую будем импортировать (загружать) данные из выпадающего списка. Остальные настойки можно оставить без изменений и жмете на кнопку «Выполнить ».


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

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


Экспорт (скачивание) баз данных MySQL большого размера через SSH-терминал

SSH – сетевой протокол, который позволяет удаленно (через специальные команды) управлять системой или сервером. В Windows для работы с этим протоколом существует множество программ, популярной из которых считается «PuTTY».

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

1. Запускаем Терминал. На он выглядит следующим образом:


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

вторая – это:

Mysqldump -u USERNAME -p DATABASE > backup.sql

непосредственно сам экспорт, где:

USERNAME – логин пользователя, имеющего доступ к базе данных.

DATABASE – название базы данных, которую хотим экспортировать.

backup.sql – название файла, в котором будет сохранена база данных и путь относительно . При такой конструкции база будет сохранена в корень хостинга.

4. в третьем шаге Enter » на клавиатуре. Обратите внимание

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

Процесс экспорта (и импорта) в SSH не транслируется, и если ваша база имеет довольно большой объем, запаситесь терпением, так как ответ от сервера вы можете получить спустя больше чем 20 минут.

Импорт (загрузка) баз данных MySQL большого размера через SSH-терминал

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

1. В корень вашего хостинга загрузите ранее скачанную базу данных удобным для вас способом.

2. Подключитесь к вашему хостингу/серверу по SSH.

так мы точно переходим в корень хостинга, и вторая – это:

Таким образом, мы получаем полный список файлов и каталогов текущей директории. Смотрим, чтобы в их числе была наша ранее загруженная база данных.

4. Если все хорошо и база на месте, вводите заключительную команду:

Mysql -u USERNAME -p DATABASE < backup.sql

USERNAME – логин пользователя имеющего доступ к базе данных.

DATABASE – название базы данных, в которую будем импортировать данные.

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

5. После ввода команды вам будет предложено ввести пароль от пользователя, которого вы указали в четвертом шаге . Вводите пароль и нажимаете «Enter » на клавиатуре. Обратите внимание , что ввод пароля в SSH-терминале не показывается, то есть вводите вы пароль или вставляете – на его месте всегда будет пустое место.

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

Меня часто спрашивают, каким образом можно импортировать на сервер большую базу данных MySQL. Известно, что phpMyAdmin по-дефолту имеет ограничения на размер импортируемой БД.

Если ваш дамп не намного превышает допустимый лимит, можно его разбить на несколько частей и импортировать в несколько заходов. Это оправдано если, к примеру, лимит составляет 2Мб, а ваша база имеет размер 5-10 Мб. Понятно, что «резать» базу весом 100Мб на 50 частей - процесс довольно трудоемкий и затратный в плане временнЫх ресурсов.

Существует несколько вариантов решения этой задачи.

Редактируем конфиг веб-сервера

На VDS/VPS особых проблем с этим не наблюдается, достаточно лишь подкорректировать конфиг. А именно, в php.ini увеличить допустимые максимальные значения для загружаемых на сервер файлов, максимальный размер для файлов передаваемых методом POST:

Post_max_size = 2000M upload_max_filesize = 2000M

Кроме этого, если ваша БД очень большая, следует увеличить максимально допустимое время выполнения скрипта.

Max_execution_time = 32000 max_input_time = 32000

И на всякий случай можно увеличить размер допустимого объема оперативной памяти:

Memory_limit = 512M

После внесения изменений, обязательно перезагрузите веб-сервер.

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

Sypex Dumper

Можно воспользоваться сторонним софтом. И первое приложение на которое стоит обратить внимание - это Sypex Dumper .

Впервые воспользовавшись им много лет назад и оценив все его возможности и достоинства, я могу смело повесить ему ярлык «Must Have». Sypex Dumper - серверное приложение на PHP не требующее установки. Его достаточно скопировать, к примеру, в корень вашего сайта в директорию sxd и вызвать его в браузере: http://Ваш_Сайт/sxd/. Стоит заметить, что предварительно в директорию backup следует поместить дамп вашей базы данных. После инициализации скрипта вы увидите панель авторизации для подключения к базе. Вводим свой логин и пароль. Хост и порт - опционально, только если они специфические.

После авторизации можно перейти непосредственно к иморту БД. В поле «База данных» будет выбрана БД к которой вы подключены, а в поле «Файл» вы увидите ранее загруженный вами дамп в директорию Backup.

Для большинства случаев никакие дополнительные настройки больше не нужны и можно смело запускать импорт, нажав на кнопку «Выполнить». Импорт, в зависимости от размера БД и вашей скорости соединения с Интернет может занять некоторое время. Во время импорта вы можете видеть какие именно таблицы импортируются в данный момент в базу. По завершению работы скрипта вы увидите лог выполнения. Он выглядит, примерно, так:

Вот, собственно, и все - база импортирована!

Консоль

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

В заключение

Я не берусь утверждать, что Sydex Dumper - это единственное и правильное решение. Существуют и другие более элегантные способы, которые требуют от пользователя определенных знаний и соответствующие доступы к настройках сервера.

Но в условиях виртуального хостинга, Sydex Dumper, безусловно, будет вашим незаменимым помощником.

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

Когда Вы только начинаете создавать сайт, Вы его делаете, как правило, на локальном сервере. Когда он будет готов, его нужно будет перемещать на удалённый сервер. Скопировать файлы - это несложно, а вот как импортировать базу данных на удалённый сервер? Как раз о том, как сделать импорт базы данных в PHPMyAdmin , я Вам и объясню в этой статье.

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

Шаг 1

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

Шаг 2

Вторым и последним шагом является выполнение SQL-запроса , который Вы скопировали, в PHPMyAdmin , который находится на сервере, куда Вам надо импортировать базу данных . Для этого выполните следующие действия:

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

Как видите, процесс экспортирования и импортирования базы данных в PHPMyAdmin упрощён до минимума, поэтому проблем с этим не будет.

Напоследок, хочется дать Вам ещё один совет. Дело в том, что очень часто бывает ситуация, когда нужно импортировать не всю базу данных , а, например, только одну таблицу. Тогда принцип абсолютно тот же самый, только при экспортировании Вам надо выбрать не только базу данных, но и таблицу для экспорта. А затем вновь в верхнем меню нажать на "Экспорт ". Дальше всё аналогично импорту баз данных .

Поделиться