Как сохранить бд из phpmyadmin на компьютер. Как быстро перенести базу данных MySQL с помощью приложений. Как сохранить базу данных MySQL

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

Быстрый способ экспорта

Начнем с обзора phpMyAdmin. Чтобы перенести базу, сначала нужно создать ее дубликат. Для этого в программе имеется специальный функционал. Рассмотрим детально данный процесс:

Можно сначала выбрать в списке слева нужную базу, и затем перейти по вкладке меню «Экспорт». Если использовать данный вариант, то будет произведен потабличный перенос MySQL. Для этого в «Способ экспорта» устанавливаем «Обычный», а в «Таблицы» выбираем элементы экспорта.

Если требуется экспортировать БД целиком (со всеми таблицами), то сразу переходите в «Экспорт». Только здесь мы уже оперируем не таблицами, а базами. В «Способ экспорта» также устанавливаем «Обычный». Затем выделяем нужную БД, и в разделе «Вывод» выбираем вариант «Сохранить вывод в файл».

Следующим шагом задаем формат, в котором будет сохранена копия базы. Выбираем в соответствующем списке значение «SQL». Это будет гарантом того, что копию можно будет использовать на большей части платформ. Но если собираетесь переносить базу на конкретную основу, то здесь можно выбрать соответствующий формат: массив PHP, CSV, PDF и другие.

Ниже в разделах «Параметры формата» и «Параметры сохранения данных» можно настроить более « » параметры для переноса базы MySQL. Но мы не будет подробно останавливаться на их обзоре. Если вы не знакомы с какими-либо из них, то лучше не менять (без необходимости) установленные значения по умолчанию. Здесь можно настроить максимальную совместимость со старыми версиями СУБД и как будут сохранены таблицы. Можно экспортировать только данные или структуры. Мы скопируем таблицы полностью (вариант «структура и данные).

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

Импортируем

С помощью phpMyAdmin можно не только создавать копии всего сервера, баз и отдельных таблиц. Программа позволяет легко перенести данные MySQL на другой экземпляр СУБД. Выполнение этого процесса во многом схоже с экспортом базы. phpMyAdmin «умеет» присоединять как отдельные таблицы к базе, так и сразу несколько БД к серверу. Для присоединения таблиц слева в списке выберите нужную базу, и затем переходите по вкладке «Импорт».

Чтобы присоединить к серверу базу (или несколько баз), сразу переходите по указанной вкладке. Затем в разделе «Импортируемый файл» отмечаем пункт «Обзор вашего компьютера», и через проводник указываем месторасположение файла БД.

Здесь нужно указать кодировку, в которой представлены данные в импортируемом источнике. С этим параметром следует быть аккуратнее, иначе вместо строк в таблицах получите настоящие «иероглифы», и для их расшифровки придется нанимать коренного японца или китайца. А с ними в нашей местности – настоящий дефицит .

Чаще всего используется кодировка UTF-8, которая и установлена по умолчанию. Поэтому, даже если не знаете точно, какая используется в переносимой базе MySQL, то стоит попробовать данную кодировку. В любом случае вы всегда сможете удалить импортированную базу, и затем «перезалить» ее с другой кодировкой.

Также спешу огорчить «рьяных» поклонников phpMyAdmin. Данная утилита подходит только для экспорта-импорта небольших баз (до 2 «метров»). Этого значение вполне хватает для частичного (поэтапного) переноса сервера, что может быть не совсем удобно и затянуть надолго весь процесс.

В разделе «Формат» устанавливаем значение «SQL». Если нужно, то включаем режим совместимости. А также отключаем автоматическое создание значения ключа для столбцов с нулевым значением (зависит от структуры таблиц импортируемого источника). И для окончания импорта жмем «Ок».

Если собираетесь перенести базу данных MySQL из бэкапа, то не забудьте перед началом импорта удалить с сервера «оригинал» источника. Иначе получите сообщение об ошибке, поскольку данная БД уже существует.

Если процесс прошел удачно, то система программы выведет соответствующее сообщение.

Альтернативное ПО

Я обещал по ходу изучения MySQL знакомить вас с различным программным обеспечением для администрирования СУБД. Так вы сможете расширить свой «профессиональный» кругозор, и выбрать ту программу, которая больше всего подходит под ваши потребности и род деятельности.

Сегодня мы протестируем возможности переноса MySQL с помощью мощного многофункционального приложения, разработанного создателями СУБД. Скачать MySQL Workbench можно с официального ресурса компании. Тут же детально описаны несколько сторонних дистрибутивов (и ссылки на них), которые потребуются для администрирования СУБД с помощью данной платформы.

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

В новом раскрывшемся окне слева в панели «Navigator» выбираем нужную вкладку (для экспорта или импорта). Я импортирую дубликат базы, созданный с помощью phpMyAdmin.

Чтобы осуществить перенос данных MySQL, переходим через пункт «Data Import». В одноименной вкладке в разделе «Import Options» выбираем второй вариант (обозначен на снимке).

Так как у нас никаких схем нет, то внизу нажимаем на «Start Import». В соседней вкладке «Import Progress» отображается состояние процесса переноса указанного файла. Эта опция может пригодиться при импорте больших объемов данных.

После окончания переноса MySQL в списке баз у нас появится db1, дубликат которой мы создали с помощью phpMyAdmin.

Ну, а пока я «прятал» свою БД MySQL, все родственники разъехались. Так как я был занят, а пополнять продуктовую базу холодильника было некому. Вот как любимая СУБД спасла меня от «родственной» напасти. За что ей огромное спасибо .

В связи с переездом на новых хостинг, пришлось осваивать азы переноса базы данных MySQL. К слову, в качестве CMS своего блога я использую MaxSiteCMS . А новый хостинг, а точнее виртуальный выделенный сервер, я приобрел в компании Adman .

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

Как сохранить базу данных MySQL

Напомню, что ее нельзя скопировать просто переписав какой-нибудь файл.
А для сохранения дампа необходимо выполнить нижеследующее в консоли:

Mysqldump -u username -p databasename > databasebackup.sql

Как восстановить базу данных MySQL

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

Mysql -u username -p newdatabasename < databasebackup.sql

Последнее обновление: 31.10.2015

Сохранение в базу данных файлов

Рассмотрим, как мы можем сохранять файлы, в частности, файлы изображений в базу данных. Для этого добавим в базу данных новую таблицу Images с четырьмя столбцами: Id (первичный ключ и идентификатор, имеет тип int), FileName (будет хранить имя файла и имеет тип nvarchar), Title (будет хранить заголовок файла и также имеет тип nvarchar) и ImageData (будет содержать бинарные данные файла и имеет тип varbimary(MAX)).

Определим код, в котором будут загружаться данные в таблицу:

Private static void SaveFileToDatabase() { string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); SqlCommand command = new SqlCommand(); command.Connection = connection; command.CommandText = @"INSERT INTO Images VALUES (@FileName, @Title, @ImageData)"; command.Parameters.Add("@FileName", SqlDbType.NVarChar, 50); command.Parameters.Add("@Title", SqlDbType.NVarChar, 50); command.Parameters.Add("@ImageData", SqlDbType.Image, 1000000); // путь к файлу для загрузки string filename = @"C:\Users\Eugene\Pictures\cats.jpg"; // заголовок файла string title = "Коты"; // получаем короткое имя файла для сохранения в бд string shortFileName = filename.Substring(filename.LastIndexOf("\\")+1); // cats.jpg // массив для хранения бинарных данных файла byte imageData; using (System.IO.FileStream fs = new System.IO.FileStream(filename, FileMode.Open)) { imageData = new byte; fs.Read(imageData, 0, imageData.Length); } // передаем данные в команду через параметры command.Parameters["@FileName"].Value = shortFileName; command.Parameters["@Title"].Value = title; command.Parameters["@ImageData"].Value = imageData; command.ExecuteNonQuery(); } }

После выполнения этой программы в базе данных появится соответствующая запись:

Извлечение файлов из базы данных

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

Public class Image { public Image(int id, string filename, string title, byte data) { Id = id; FileName = filename; Title = title; Data = data; } public int Id { get; private set; } public string FileName { get; private set; } public string Title { get; private set; } public byte Data { get; private set; } }

Затем в коде программы определим следующий метод:

Private static void ReadFileFromDatabase() { string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True"; List images = new List(); using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); string sql = "SELECT * FROM Images"; SqlCommand command = new SqlCommand(sql, connection); SqlDataReader reader = command.ExecuteReader(); while(reader.Read()) { int id = reader.GetInt32(0); string filename = reader.GetString(1); string title = reader.GetString(2); byte data = (byte)reader.GetValue(3); Image image = new Image(id, filename, title, data); images.Add(image); } } // сохраним первый файл из списка if(images.Count>0) { using (System.IO.FileStream fs = new System.IO.FileStream(images.FileName, FileMode.OpenOrCreate)) { fs.Write(images.Data, 0, images.Data.Length); Console.WriteLine("Изображение "{0}" сохранено", images.Title); } } }

В этом методе с помощью SqlDataReader мы получаем значения из БД и по ним создаем объект Image, который потом добавляется в список. И в конце смотрим, если в списке есть элементы, то берем первый элемент и сохраняем его на локальный компьютер. И после сохранения в папке нашей программы появится загруженный из базы данных файл.

Здравствуйте друзья! Статья касается блогосферы и в ней мы рассмотрим сохранение базы данных сайта на хостинге TimeWeb.

Хостинг TimeWeb, базы данных сайт

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

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

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

Сайт размещен на хостинге TimeWeb (движок WordPress). Базу данных сайта сохраняю один раз в неделю, кто-то делает чаще, кто-то реже – это дело каждого. Сохранять надо две основные структуры сайта, это файловая система и база данных сайта. В файловую систему входят: движок WordPress, установленные темы, плагины и картинки.

В базу данных входит контент сайта (страницы, статьи, комментарии). Хостинг TimeWeb постоянно делает backup и хранит их в течении последних трёх суток. Можно сохранять данные из админпанели, можно напрямую с хотинга, я делаю по второму варианту.

Итак, заходим на хостинг в панель управления (Рис.1).

Нажимаем кнопку «Управление BACKUP». В открывшемся окне, нажимаем на стрелку в строке public_html. Подтверждаете, что Вы действительно хотите сохранить архив файла/директории public_html в Вашем домашнем каталоге (Рис. 2).

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

Архивация длится несколько минут (всё зависит от объёма данных на сайте). После этого нажимаем «На стартовую страницу» (внизу таблицы) и на главной странице нажимаем «Файловый менеджер». Выбираем по дате архивации нужные нам два файла и поочередно их сохраняем.

Для этого по выделенным файлам, поочередно, делаем двойной щелчок мышкой (Рис. 3), спрашивается куда сохранить, сохраняем. Сохранённые файлы прячем в надёжные папки, лишним не будет сохранить их на диск DVD. Обязательно сохраняйте свои данные.

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

С помощью панели DirectAdmin; С помощью web-интерфейса phpMyAdmin; С помощью скрипта Sypex Dumper; С помощью командной строки сервера

Способ №1: Экспорт с помощью панели DirectAdmin

В панели DirectAdmin присутствует раздел, в котором производится контроль над базами данных, раздел Управление MySQL. В этом разделе отображается список баз данных пользователя и основные элементы управления:

создание и удаление базы данных;

редактирование базы данных (интерфейс phpMyAdmin);

восстановление поврежденной базы данных;

проверка таблиц базы данных;

оптимизация таблиц базы данных;

импорт базы данных;

управление пользователями базы данных;

экспорт базы данных;

В данный момент нас интересует именно последний пункт. Возле каждой базы данных есть ссылка «Скачать»

В этом случае браузер предложит Вам сохранить на локальный компьютер файл <имя базы>.gz, в данном примере это файл user_database.gz. Файл предоставляется в сжатом виде, как архив gz.

Способ №2: Экспорт с помощью web-интерфейса phpMyAdmin.

phpMyAdmin — веб-приложение с открытым исходным кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. phpMyAdmin позволяет через браузер осуществлять администрирование сервера MySQL, выполнять SQL-запросы и просматривать содержимое баз данных и таблиц. Приложение пользуется большой популярностью у веб-разработчиков, так как позволяет управлять СУБД MySQL с помощью дружественного интерфейса, без необходимости использования сложных SQL-запросов для выполнения простых задач.

Для перехода в web-интерфейс phpMyAdmin выбираем соответствующий пункт в панели Direct Admin:

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

Рассмотрим каждый пункт более детально.

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

2. Формат резервной копии. На выбор предлагается несколько форматов резервной копии, в данном случае мы выбираем тип SQL. Остальные способы используются при выполнении специфических задач и используются очень редко.

3. Очень важный момент - галочка «Сохранить как файл». Если эта галочка установлена, Вам будет предложено скачать резервную копию. В противном случае, на экран будет выведена текстовая версия резервной копии в виде MySQL-запросов.

4. Шаблон имени файла. По умолчанию имя файла будет иметь следующий вид: <имя базы>.<формат файла>, в нашем примере это user_database.sql.

5. Сжатие. Этот пункт позволяет выбрать метод сжатия файла:

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

zip, т.е. файл в формате архива.zip, размер файла будет уменьшен за счет архивации резервной копии;

gzip, т.е. файл в формате.gz, размер файла будет уменьшен за счет архивации резервной копии;

После выбора всех необходимых параметров достаточно нажать кнопку «ОК» и дождаться подготовки резервной копии. Если база данных имеет значительный объем, на подготовку резервной копии может потребоваться некоторое время. В итоге Вам будет предложено сохранить файл резервной копии базы данных на локальный компьютер.

Способ №3: Экспорт с помощью скрипта Sypex Dumper.

Sypex Dumper — это программный продукт (PHP-скрипт), с помощью которого можно просто и быстро создать резервную копию (бэкап, дамп) базы данных MySQL, а также восстановить в случае необходимости базу данных из резервной копии. Официальный сайт скрипта: http://sypex.net/ . На сайте можно бесплатно скачать сам скрипт Sypex Dumper, и ознакомиться с документацией по работе с данным продуктом. Sypex Dumper позволяет работать с базами данных практически любых размеров. Мы рассмотрим работу скрипта на примере версии Sypex Dumper Lite 1.0.8, эта версия скрипта наиболее легка в использовании.

Скачайте сам скрипт, распакуйте архив и загрузите файл dumper.php на Ваш с сервер, в каталог public_html. Для корректной работы скрипта потребуется создать каталог хранения резервных копий (дампов) баз данных. Для создания каталога перейдите в Менеджер файлов панели Direct Admin, перейдите в каталог public_html и создайте новый каталог backup.

Перейдем непосредственно к работе со скриптом Sypex Dumper. Вызов скрипта осуществляется из адресной строки браузера: http://example.com/dumper.php, где example.com - это Ваш домен. Скрипт предложит ввести Вам логин и пароль. Потребуется ввести логин пользователя базы данных и пароль пользователя базы данных, которые Вы указали при создании базы данных.

После этого скрипт предложит выбрать действие над Вашими базами данных: «Backup / Создание резервной копии БД» и «Restore / Восстановление БД из резервной копии». Нас интересует первый пункт.

Пункт «БД» позволяет выбрать необходимую базу данных из списка Ваших баз данных. Фильтр таблиц позволяет указать таблицы, которые будут включены в резервную копию. Более детальную информацию о фильтрах Вы можете узнать на сайте разработчика скрипта Sypex Dumper. В пункте «Метод сжатия» Вы можете указать будет ли применяться сжатие Gzip при создании резервной копии (запакованный файл с расширением.gz), или же будет сохранена резервная копия в формате.sql. Пункт Степень сжатия используется, только если выбран метод сжатия Gzip. Чем больше значение этого параметра, тем меньше будет размер файла.

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

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

Способ №4: Экспорт с помощью скрипта Sypex Dumper.

Данный способ доступен только тем пользователям, у которых есть доступ к SSH (Secure SHell, удаленное управление операционной системой). Для экспорта резервной копии базы данных необходимо подключиться по SSH к серверу (к примеру, с помощью ssh-клиента Putty, если у Вас ОС Windows, или с помощью терминала, если у Вас ОС семейства Linux).

После подключения в командной строке достаточно выполнить следующую команду:

mysqldump -uUSER -pPASS DBNAME > /path/to/dump.sql

Где «-u»- это параметр, задающий имя пользователя базы данных для подключения (USER), «-p» - это параметр, задающий пароль пользователя базы данных для подключения (PASS), DBNAME - имя базы данных, «/path/to/dump.sql» - полный путь к файлу резервной копии базы данных. Рассмотрим команду на нашем примере. Допустим, файл резервной копии находится в каталоге domains/example.com/public_html/backup (где exapmle.com - имя Вашего домена), имя пользователя базы - «user_user», пароль - «Ide2eib6?, имя базы - «user_database», имя резервной копии - dump.sql, расположен файл резервной копии по пути domains/example.com/public_html/backup/.

В этом случае команда для импорта базы данных будет иметь следующий вид:

mysqldump -uuser_user -pIde2eib6 user_database > domains/example.com/public_html/backup/dump.sql

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

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