Просто:
> mysqldump -uLOGIN -PPORT -hHOST -pPASS DBNAME > dump.txt
В unix shell запускаем crontab -e и создаем такое правило запуска процесса создания копий базы:
0 0 * * * mysqldump -uLOGIN -PPORT -hHOST -pPASS DBNAME | gzip -c > `date "+%Y-%m-%d"`.gz
Сложно:
Копирование баз данных MySql в архив — помошь, скрипты, примеры
Простой способ для /bin/sh (Запуск из коммандной строки SSH)
Код для скрипта:
#!/bin/sh data=`/bin/date +%d.%m.%Y_%H-%M-%s` #копирование данных из MySql в текстовый файл /usr/local/bin/mysqldump --all-databases --user=NAME --password=PASS > /home/USER-NAME/sql-dump.sql #превращает текстовый файл в архив /usr/bin/gzip --best /home/USER-NAME/sql-dump.sql #Перемещает файл sql-dump.sql в sql-dump_${data}.sql.gz /bin/mv sql-dump.gz sql-dump_${data}.gz
Для того чтобы изменить кодировку данных в скрипт, используйте опцию
—default-character-set=charset_name
Для копирования данных с полным INSERT, используйте опцию
—complete-insert
Чтобы указать установку кодировки в коде дампа, используйте
Add SET NAMES default_character_set to the output.
—set-charset
Чтобы добавить в задание Crontab, используйте
#Создание резервной копии через каждые 45 минут */45 * * * * /usr/home/USERNAME/sql-backup-cronfile.sh 1>/dev/null 2>&1 #Создание резервной копии каждый день в час ночи. 0 1 * * * /usr/home/USERNAME/sql-backup-cronfile.sh 1>/dev/null 2>&1
Примечание: файл /usr/home/USERNAME/sql-backup-cronfile.sh должен существовать(см. вверху готовый скрипт)
А потом идем и смотрим как восстановить базу MySQL