ИТ База знаний
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Популярное и похожее
15 примеров команды PING для диагностики сети
Руководство по команде grep в Linux
15 примеров CURL в Linux
Лучшие HEX – редакторы для Linux
Установка VirtualBox 6.0 на Linux
Open – source OS: 3 отличия Linux от OpenBSD
8 крутых файловых менеджеров Linux: обзор и установка
Snom 720 UC edition
Еженедельный дайджест
Как сделать резервную копию и восстановить базу данных MySQL с помощью Mysqldump
Делай бекапы — не будет факапов
В этом руководстве мы рассказываем, как выполнить резервное копирование и восстановление баз данных MySQL или MariaDB из командной строки с помощью утилиты mysqldump.
Файлы резервных копий, созданные утилитой mysqldump, представляют собой набор операторов SQL, которые можно использовать для воссоздания исходной базы данных. Команда mysqldump также может генерировать файлы в формате CSV и XML. Вы также можете использовать утилиту mysqldump для переноса вашей базы данных MySQL на другой сервер MySQL.
Синтаксис команды Mysqldump
Прежде чем приступить к использованию команды mysqldump, начнем с обзора основного синтаксиса.
Выражения утилиты mysqldump имеют следующую форму:
- options — параметры mysqldump
- file.sql — дамп (резервная копия) файла
Для использования команды mysqldump сервер MySQL должен быть доступен и запущен.
Резервное копирование одной базы данных MySQL
Наиболее распространенный вариант использования инструмента mysqldump — резервное копирование одной базы данных.
Например, чтобы создать резервную копию базы данных с именем database_name , используя пользователя root , и сохранить ее в файл с именем database_name.sql , вы должны выполнить следующую команду:
Вам будет предложено ввести пароль root. После успешной аутентификации начнется процесс дампа. В зависимости от размера базы данных процесс может занять некоторое время.
Если вы вошли в систему как тот же пользователь, которого вы используете для выполнения экспорта, и этот пользователь не требует пароля, вы можете пропустить опции -u и -p :
Резервное копирование нескольких баз данных MySQL
ля резервного копирования нескольких баз данных MySQL одной командой вам нужно использовать параметр —database , за которым следует список баз данных, которые вы хотите сделать резервную копию. Каждое имя базы данных должно быть разделено пробелом.
Команда выше создаст файл дампа, содержащий обе базы данных.
Резервное копирование всех баз данных MySQL
Используйте опцию —all-database для резервного копирования всех баз данных MySQL:
Как и в предыдущем примере, команда выше создаст один файл дампа, содержащий все базы данных.
Резервное копирование всех баз данных MySQL в отдельные файлы
Утилита mysqldump не предоставляет возможность резервного копирования всех баз данных в отдельные файлы, но мы легко достигаем этого с помощью простого цикла bash FOR:
Команда выше создаст отдельный файл дампа для каждой базы данных, используя имя базы данных в качестве имени файла.
Создание сжатой резервной копии базы данных MySQL
Если размер базы данных очень большой, рекомендуется сжать вывод. Для этого просто перенаправьте вывод в утилиту gzip и перенаправьте его в файл, как показано ниже:
Создать резервную копию с отметкой времени
Если вы хотите сохранить более одной резервной копии в одном месте, вы можете добавить текущую дату в имя файла резервной копии:
Команда выше создаст файл в следующем формате database_name-20200223.sql
Восстановление дампа MySQL
Вы можете восстановить дамп MySQL с помощью инструмента mysql. Общий синтаксис команды выглядит следующим образом:
В большинстве случаев вам необходимо создать базу данных куда вы будете производить импорт. Если база данных уже существует, сначала вам нужно удалить ее.
В следующем примере первая команда создаст базу данных с именем database_name , а затем импортирует в нее дамп database_name.sql :
Восстановление одной базы данных MySQL из полного дампа MySQL
Если вы создали резервную копию всех своих баз данных с помощью параметра -all-database и хотите восстановить одну базу данных из файла резервной копии, который содержит несколько баз данных, используйте параметр —one-database , как показано ниже:
Экспорт и импорт базы данных MySQL одной командой
Вместо того, чтобы создавать файл дампа из одной базы данных и затем импортировать резервную копию в другую базу данных MySQL, вы можете использовать следующую однострочную команду:
Команда выше передаст вывод клиенту mysql на удаленном хосте и импортирует его в базу данных с именем remote_database_name . Перед выполнением команды убедитесь, что база данных уже существует на удаленном сервере.
Автоматизация резервного копирования с помощью Cron
Автоматизация процесса резервного копирования баз данных так же проста, как создание задания cron, которое будет запускать команду mysqldump в указанное время.
Чтобы настроить автоматическое резервное копирование базы данных MySQL с помощью cronjob, выполните следующие действия:
- Создайте файл с именем .my.cnf в вашем домашнем каталоге пользователя: Скопируйте и вставьте следующий текст в файл .my.cnf . Не забудьте заменить dbuser и dbpasswd на пользователя базы данных и пароль пользователя.
- Ограничьте права доступа к файлу учетных данных, чтобы только ваш пользователь имел к нему доступ, используя команду cmod (подробнее про которую можно прочесть тут):
- Создайте каталог для хранения резервных копий при помощи комадны mkdir (про нее тоже есть статья):
- Откройте ваш пользовательский файл crontab: Добавьте следующее задание cron, которое будет создавать резервную копию имени базы данных mydb каждый день в 3 часа ночи: Не забудьте заменить username вашим реальным именем пользователя. Вы также можете создать еще один cron job, чтобы удалить любые резервные копии старше 30 дней: Конечно, вам нужно настроить команду в соответствии с вашим местоположением резервной копии и именами файлов. Чтобы узнать больше о команде find, ознакомьтесь с нашим Руководством по поиску файлов в Linux с помощью командной строки.
Заключение
Это руководство охватывает только основы, но оно должно быть хорошим началом для тех, кто хочет научиться создавать и восстанавливать базы данных MySQL из командной строки с помощью утилиты mysqldump. Если вы хотите найти больше материалов про базы данных, то просто наберите sql в нашем поиске!
Было полезно?
Почему?
😪 Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.
😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.
Mysql windows резервное копирование
Как говорится, админы делятся на тех, кто не делает бэкапов и тех, кто уже делает. Уж сколько раз убеждались, что делать бэкапы нужно, и чем чаще, тем лучше, но не перевелась еще армия админов, надеющихся на авось.
Недавно поднял на очередном компьютере веб-сервер Xampp и запустил несложную, но важную программку с веб-интерфейсом для внутрисетевого использования и озадачился вопросом — как сделать, чтобы база данных сама бэкапилась каждый день.
В принципе, задача имеет множества вариантов решения, но мне больше всего понравился такой вариант — создать .bat-файл и забить его в штатный планировщик Windows. После активного поиска в интернете был найден такой код:
SET SOURCEDIR=D:\xampp\mysql\data\ set hour=%TIME:
6,2% set HHMMSS=%hour%-%minute% for /d %%i in (%SOURCEDIR%\*) do «D:\xampp\mysql\bin\mysqldump.exe» -uusername -hlocalhost -ppassword -c -n %%
ni | «c:\Program Files\7-Zip\7z.exe» a -tgzip -si»%%
ni.sql.gzip» eachfile.exe -purge -r -w -e -d 13 -l 0 -dir D:\backups\data\ exit
Принцип работы следующий:
- в первой строке задаем путь к каталогу, в котором хранятся файлы базы данных MySQL
- дальше идут строки (set . ), в которых формируется имя архива — оно состоит из даты и времени создания архива
- цикл for перебирает все файлы в каталоге и для каждого из них запускает процедуру создания дампа базы данных. Для этого нужно ввести данные -u username , -h localhost , -p password. Именно так, без пробелов. Дампы упаковываются архиватором 7-zip (должен быть установлен на ПК). Каждый дамп пишется в отдельный архив.
- eachfile.exe — это бесплатная программа, позволяющая удалять устаревшие файлы в каталоге. В предпоследней строчке выполнение программы настроено таким образом, что она удаляет файлы старже 13 дней.
После этого заходим в планировщик заданий и настраиваем выполнение этого скрипта каждый день в удобное для нас время.
Резервное копирование базы данных MySQL и каталогов в Windows
Совсем недавно я писал как реализовать резервное копирование в Ubuntu, теперь проделаем тоже самое с базой данных mysql и каталоами под Windows. В рассматриваемом примере резервирование происходит с помощью бесплатного архиватора «7-zip». Установите его.
Создаём в корне диска «C://» (или другом месте) текстовый документ. Называем его «backup.bat». Открываем для редактирования и вносим следующее:
0,-3%)
set sFolderName=»Y:\my-comp\%sFolderName::=-%»
set infotecsbackup=»%sFolderName%\infotecs_backup.zip»
«C:\Program Files\7-Zip\7z.exe» u «%infotecsbackup%» «C:\Program Files\InfoTeCS\*»
set sFolderName=%date% (%time:
0,-3%) — в переменную «sFolderName» записываем текущую дату и время;
set sFolderName=»Y:\my-comp\%sFolderName::=-%» — в эту же переменную добавляем полный путь для копирования, при этом концовка в виде ::=- обозначает что все двоеточия в названии конечного каталога мы заменяем на знак тире, так как Windows не поддерживает знак двоеточия в названиях файлов и каталогов;
set infotecsbackup=»%sFolderName%\infotecs_backup.zip» — создаем переменную, в которой будет содержатся путь и имя конечного файла;
«C:\Program Files\7-Zip\7z.exe» u «%infotecsbackup%» «C:\Program Files\InfoTeCS\*» — указываем путь к архиватору с директивой «u» — добавочный тип копирования. Указываем имя архива для записи и источник.
В качестве пути назначения я выбрал сетевой диск удаленного компьютера. Так что выход из строя компьютера не помешает достать резервные копии. Так же для резервного копирования удобно использовать программу «CobianBackup». Она позволяет отправлять файлы по FTP в определенное время.
Осталось запустить планировщик заданий и добавить в него выполнение файла «backup.bat» каждый день.
Резервная копия базы данных в Windows
Если в Windows установлен mysql сервер, то можно делать копию его баз данных. Для этого добавьте в файл «backup.bat» их предыдущего примера следующие команды:
Указываем в переменной filebackupsql название файла, в который осуществляем сохранение базы данных. Затем, прописываем путь к утилите «mysqldump». Тут же пишем логин, пароль и имя базы данных. В конце идёт переменная, содержащяя путь, куда осуществить дамп «%filebackupsql%» .