Резервное копирование MySQL для администраторов баз данных

Приветствую всех посетителей сайта Info-Comp.ru! Сегодня мы с Вами подробно рассмотрим процесс установки бесплатной редакции MySQL 8 Community на операционную систему Windows 10.

Как сделать бэкап MySQL с Handy Backup?

Создание резервной копии MySQL с помощью Handy Backup делается довольно просто. Воспользуйтесь нижеследующей инструкцией:

  1. Откройте программу Handy Backup. Вызовите мастер новых задач кнопкой на панели.
  2. На Шаге 1 выберите задачу резервного копирования, нажмите «Далее».
  3. На Шаге 2 откройте группу «Database» на левой панели и выберите «MySQL».
  1. Нажмите кнопку «>>» или щёлкните дважды на названии выбранного плагина.
  2. Вам будет предложено создать подключение к базе данных MySQL.
  1. Введите ваши параметры для подключения к СУБД в диалоге. Нажмите ОК.
  2. Теперь вы увидите окно плагина со списком таблиц, доступных для бэкапа MySQL.
  1. Выберите «галочками» нужные таблицы. Нажмите ОК и вернитесь к Шагу 2.
  2. Продолжайте создавать задачу резервного копирования, как описано в Руководстве пользователя Handy Backup.

Рекомендуемое решение для автоматического бэкапа MySQL Handy Backup Office Expert

Создавать резервные копии MySQL с помощью решения Office Expert легко и удобно! Попробуйте бесплатно 30-дневную пробную версию Handy Backup со всеми функциями!

Подробнее

Почему я не люблю Time Machine

Во-первых, самый удобный способ резервного копирования с Time Machine – сохранение на сетевой накопитель. Apple давно свернула производство фирменных маршрутизаторов со встроенным диском, направление явно не в приоритете купертиновцев.

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

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

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

Почему я не люблю Time Machine

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

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

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

Чтобы избавиться от всех указанных проблем Time Machine я решил перейти на стороннюю систему резервного копирования.

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

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

# mysqldump –u[пользователь] –p[пароль_пользователя] [имя_базы] › [название_файла_резервной_копии_базы].sql

Например:

# mysqldump -uroot -pqwerty my_db > my_

Резервная копия нескольких баз данных

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

Для этого введите команду show databases (в Workbench)

или # mysqlshow –uroot -p (в консоли).

Если необходимо одновременно создать резервную копию нескольких баз данных (например, my_db и test), то для этого необходимо выполнить такую команду:

# mysqldump -uroot -pqwerty –databases my_db test › my_db_test_

Резервная копия всех баз данных

Если есть необходимость создать бэкап всех баз данных вашего профайла MySQL, то это можно сделать с помощью параметра –all-databases.

# mysqldump -uroot -pqwerty –all-databases › all-databases_

Резервная копия отдельной таблицы

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

# mysqldump -uroot -p my_db wp_commentmeta › table_ my_db-wp_

Примечание. Чтобы просмотреть список таблиц базы, введите команду: #mysqlshow –uroot –p my_db

Бэкап баз данных MySQL в Linux

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

Читайте также:  Обзор MIUI 12.5, когда выйдет и какие смартфоны получат обновление

В этом уроке я опишу как сделать резервную копию MySQL сервера с помощью mysqldump.

Программа mysqldump содержится в клиентском пакете MySQL. Поэтому, в первую очередь нужно установить клиентский пакет.

Для установки mysqldump на Ubuntu, Debian или Mint:

$ sudo apt-get install mysql-client

Для установки mysqldump на CentOS, Fedora или RedHat:

$ sudo yum install mysql

Чтобы сгенерировать онлайн снимок живого MySQL сервера, вам нужно предотвратить любые обновления его баз данных во время процедуры создания резервной копии. Как добиться этого зависит от системы хранения, которое вы используете внутри для MySQL таблиц. Поэтому в первую очередь выясните, какую систему хранения (например, MyISAM, Innodb) вы используете. Эта инструкция расскажет вам как.

Резервное копирование баз данных InnoDB

Если все ваши MySQL используют InnoDB, вы можете использовать опцию "—single-transaction" с mysqldump для создания онлайн бэкапа:

$ mysqldump -h[server-ip-address] -u[username] -p[password] —all-databases —single-transaction >

Обратите внимание, что в вышеприведённой mysqldump команде нет пробелов между опциями аргументов (например, -h, -u, -p) и самими величинами аргумента (например, server-ip-address, username, password).

Резервные копии баз данных MyISAM или InnoDB/MyISAM

Приведённая выше команда, тем не менее, не работает, если вы используете таблицы MyISAM или смесь таблиц InnoDB/MyISAM, поскольку MyISAM не поддерживает транзакции. В этом случае вам нужно явным образом заблокировать все таблицы на время проведения резервного копирование. Как это сделать показано ниже.

mysql> flush tables with read lock;

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

$ mysqldump -h[server-ip-address] -u[username] -p[password] —all-databases >

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

mysql> unlock tables;

Резервное копирование БД MySQL с помощью графического интерфейса

Следующий пример показывает выполнение резервного копирования БД MySQL с помощью графического интерфейса.

1. Щелкните правой кнопкой мыши в окне Проводник и выберите опцию Резервная копия → Создать резервную копию БД. Откроется окно Мастер резервирования БД

2. На вкладке «Общие» укажите соединение, базу данных для создания резервной копии, а также название итогового файла. Щелкните Далее.

3. Выберите содержимое для создания резервной копии. Щелкните Далее.

4. Укажите подробные опции создания резервной копии MySQL. Щелкните Далее.

5. Настройте опции Обработка ошибок и Лог-файла. Щелкните Выполнить для создания резервной копии MySQL.

6. Щелкните Выполнить.

Как запланировать создание резервной копии MySQL?

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

1. Выполните шаги 1-5 выше. Щелкните Сохранить проект.

2. Выбрав все необходимые опции для резервного копирования и сохранив проект, запустите Планировщик задач в Windows.

3. Выберите Действие → Создать простую задачу в верхнем меню.

4. Укажите имя для новой задачи. Щелкните Далее.

5. Выберите одну из опций для запуска задачи создания резервной копии MySQL. Щелкните Далее.

6. Выберите время и частоты для запуска задачи. Щелкните Далее.

7. Выберите Запустить программу и щелкните Далее.

8. Укажите путь к файлу в поле Программа или сценарий. (По умолчанию задан путь "C:\Program Files\Devart\dbForge Studio for MySQL\")

Также, не забудьте указать следующие аргументы в поле Добавить аргументы:

/backup /connection:"User Id=root;Host=db;Port=3309;Database=sakila;Character Set=utf8;" /projectfile:"C:\Users\Documents\dbForge Studio for MySQL\Export\"

9. Проверьте все настройки еще раз и, если изменения не требуются, щелкните Завершить. В противном случае, щелкните Назад и внесите необходимые изменения.

Наш Мастер резервного копирования MySQL поможет вам избежать потери данных. Всего за несколько простых шагов вы сможете создавать копии баз данных целиком или только избранных объектов, настолько же быстро и просто восстанавливая их в дальнейшем.

Редакции MySQL 8

MySQL 8 выпускается в нескольких редакциях.

MySQL Standard Edition

MySQL Standard Edition – это редакция со стандартным функционалом, она позволяет реализовать высокопроизводительные, надежные и масштабируемые приложения.

MySQL Enterprise Edition

MySQL Enterprise Edition – данная редакция включает в себя полный функционал и набор дополнительных инструментов, которые предназначены для достижения самой высокой масштабируемости, безопасности и надежности.

Читайте также:  Здесь всё, что покажет Apple на WWDC 201901.06.2019 16:20

MySQL Cluster Carrier Grade Edition

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

MySQL Community

MySQL Community Edition – это бесплатная редакция, которую можно абсолютно свободно скачать с официального сайта MySQL. Редакция поддерживает весь необходимый функционал для реализации полноценных интернет ресурсов.

Подробнее о редакциях MySQL можете почитать на официальном сайте –

Используем консоль

Экспорт

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

Для экспорта базы данных введите вот такую команду:

mysqldump -u имя_пользователя -p название_БД >

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

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

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

— MySQL dump Distrib , for Linux (x86_64) — — Host: localhost Database: database_name — —————————————————— — Server version

Если во время процесса экспорта будут какие-нибудь ошибки, утилита mysqldump выведет на экран сообщение о них.

Импорт

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

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

$ mysql -u root –p

После того, как вы подключились к консоли MySQL, создайте новую базу данных (в данном случае new_database):

mysql> CREATE DATABASE new_database;

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

Output Query OK, 1 row affected ( sec)

Теперь для выхода из консоли MySQL нажмите CTRL+D. Далее переходите к самому импорту. Сделать это можно, введя вот такую команду:

$ mysql -u имя_пользователя -p new_database <

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

Если команда выполнена корректно, то никакого вывода на экране вы не увидите; на экране могут отобразиться только сообщения о каких-то ошибках. Как и в случае с экспортом, проверить, точно ли все прошло успешно, вы можете путем подключения к MySQL и просмотра данных. Сделать это можно, к примеру, используя команды USE и SHOW. Команда use определяет, какая база данных будет использоваться в дальнейших запросах. Введите:

mysql> use new_database

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

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

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

mysql> SHOW TABLES;

Хотите увидеть список столбцов в какой-то определенной таблице? Используйте команду SHOW COLUMNS FROM и название нужно вам таблицы:

SHOW COLUMNS FROM название_таблицы

Статистику по работе сервера можно получить в ответ на команду:

mysql> SHOW GLOBAL STATUS;

Как быстро проверить установку?

Открываем Пуск -> Все программы -> MySQL ->MySql Server 5.1 -> MySQL Server Command Line Client (утилита для работы с MySQL в командной строке).

Далее вводим пароль администратора (root). Если пароль правильный, вы попадете в командную строку (mysql>). Введите команду: show databases; (точка с запятой на конце обязательны). В результате вы должны увидеть список баз данных (как минимум две — information_schema и mysql). Это означает, что сервер работает правильно. Закрываем командную строку выполнив команду exit.

ВНИМАНИЕ! Для подключения к МySQL из PHP, с сервера установленного на том же компьютере, необходимо в качестве адреса сервера MySQL вместо localhost использовать 127.0.0.1 !!!

Природа этого глюка до конца мне непонятна, но на его обнаружение потратил полдня…

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

Одна из самых популярных программ (а может и самая популярная)  для работы с MySQL — это phpMyAdmin.

Похожее

Читайте также:  Lubuntu 18.10: установка операционной системы

Дамп и восстановление базы данных MySQL

Дамп и восстановление базы данных MySQL довольно просто и удобно делать удаленно через SSH или прямо через консоль сервера. Удаленно, это можно делать используя программы Putty/Kitty.

Также указанные ниже примеры Вы можете выполнять и на Windows запустив командную строку ‘cmd‘.

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

Создание дампа базы данных MySQL

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

# Бекап одной базы данных в файл dump_ -uroot -p your_base > dump_# На windows дамп лучше всего создавать немного другой командой, которая предотвращает# случайное затирание строк дампа из за конвертации символов перевода строки ' ' в ' 'mysqldump -uroot -p your_base -r dump_file_# Если Вам нужен бекап только отдельных таблиц, а не всей базы данных# (указываем наименования таблиц через пробел после названия базы данных)mysqldump -uroot -p your_base TABLE1 TABLE2 TABLE3 > dump_# Если нужно создать бекап только структуры базы данных без самих данныхmysqldump -uroot -p –no-data your_base > dump_# Бекап всех баз данных в файл текущая_ -uroot -p –all_databases | gzip -c > 'date “+%Y-%m-%d”'.gz# Бекап, где для каждой записи создается отдельный INSERT# и с явным указанием кодировки базы данных UTF-8mysqldump -uroot -p –default-character-set=utf8 your_base –extended-insert=FALSE  | gzip -c > 'date “+%Y-%m-%d”'.gz
Дамп и восстановление базы данных MySQL

В приведенном выше примере, для создания бекапа используется утилита mysqldump, которая входит в состав mysql. Далее указываются параметры для создания бекапа базы данных, которые разберем подробнее:

  • -u – параметр указывает логин, который будет использоваться для подключения к базе данных. В примере мы используем логин root, который нужно указать в этом параметре без пробела! В результате у нас это выглядит как -uroot
  • -p – параметр указывает что нужно ввести пароль для указанного логина. Мы его оставили пустым, в результате чего пароль нужно будет ввести после нажатия “Enter” при выполнении команды. Тем не менее, можно указать пароль сразу же здесь, как и в параметре логина, без пробела после -p, однако этот способ не является безопасным, так как консоль сохраняет Ваши команды в лог файл и если Вы его регулярно не очищаете, то он может быть просмотрен злоумышленником.
  • your_base – вместо этой строки в примере, вам необходимо указать реальное имя Вашей базы данных, для которой Вы создаете бекап.
  • > – оператор который показывает направление действия, т.е. как бы указывает, что вы собираетесь сделать запись из базы в файл.
  • dump_ – это название Вашего файла .slq в которую нужно сохранить Вашу базу данных. Он указывается через пробел после оператора ‘>’. Вы можете задать любое другое имя. Например, чтобы в имени система автоматически вставила текущее время, достаточно указать строку вида:после этой строки в примере указывается расширение файла ‘.gz‘. В результате будет создан файл вида ‘‘.Внимание! Если Вы указываете только имя файла, то он будет сохранен в той же директории, относительно которой Вы выполняете данную команду. Т.е. если Вы видите в строке приглашения ввода команд что-то вроде [[email protected] home]#, где [email protected] это логин и имя сервера, то файл будет создан в директории /home. Чтобы изменить сохранение файла по другому пути, укажите вместо имени полный путь для сохранения файла, например: /var/www/backup/dump_.
  • Во втором примере, вместо оператора ‘>‘ используется оператор ‘|‘, который указывает на необходимость выполнения дополнительной команды gzip c параметром ‘-c‘ которая позволяет сразу же запаковать дамп в архив, а только затем сохранить его в файл вида ‘‘, о чем сообщает оператор ‘>‘.
  • Параметр –no-data позволяет создать дамп только структуры базы данных без самих данных. В некоторых случаях довольно полезно, когда данные не нужны.
  • Параметры –default-character-set=utf8 и –extended-insert=FALSE. Первый позволяет Вам явно указать кодировку, которая используется этой базой данных, тем самым избежать сохранение базы в неверной кодировке Вместо utf8 можно указать любую другую кодировку, например cp1251. Второй параметр позволяет указать, что при экспорте для каждой записи необходимо создать отдельную команду INSERT. В некоторых случаях это может потребоваться при частичном восстановлении данных из дампа.

Восстановление базы данных из файла дампа MySQL

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

# Восстанавливаем базу данных your_base из файла дампа dump_filemysql -uroot -p your_base