Страница 1 из 2

Дамп БД с помощью mysqldump.exe

Добавлено: 24 июн 2015, 09:36
San4
Здравствуйте, подскажите чайнику: как сделать дамп конкретной БД, используя для этого утилиту mysqldump.exe.
Уже много гуглил: на денвере расписано, что да как нужно сделать. А как конкретно сделать на open-server - не могу найти никакой конкретной инфы.
Пробовал вводить различные команды в консоли (какие нагуглил) - ничего не получается. Я в командной строке вообще ничего не понимаю! могу дамп сделать через phpMyAdmin, но мне нужно через mysqldump.

Добавлено: 24 июн 2015, 12:35
Ink0gnit0
San4, В самом элементарном случае:
mysqldump.exe --user=[имя_пользователя] --password=[пароль_пользователя] --databases [наименование_бд] > [путь_к_каталогу_куда_сохранять_дамп]\[наименование_дампа].sql
или
mysqldump.exe -u[имя_пользователя] -p[пароль_пользователя] [наименование_бд] > [путь_к_каталогу_куда_сохранять_дамп]\[наименование_дампа].sql
За дополнительными параметрами, обращайтесь к справке по утилите:
mysqldump --help

Добавлено: 24 июн 2015, 19:40
San4
спасибо!!!, получилось!
ввел такую команду в консоли open-server:
mysqldump.exe --user=root --databases mydb > D:\backup\mybd.sql
если пароля нет, то я так думаю его можно исключить из команды?

Если не трудно:
дайте команду, чтобы дамп сразу архивировался при экспорте.
И команду импорта сторонней БД :roll:
(справку посмотрел - но для меня это темный лес. Может и найду, но я совсем не знаю правила синтаксиса в командной строке.)

Добавлено: 24 июн 2015, 23:20
Ink0gnit0
San4,
Для создания RAR-архивов (winrar должен быть активирован):
@ECHO OFF

SET usr="root"
SET db="mydb"
SET backupspath=d:\backups\

PATH = %PATH%;[путь_к_каталогу_с_утилитой_mysqldump];[путь_к_каталогу_winrar];

IF NOT EXIST %backupspath% mkdir %backupspath%

For /f "tokens=1-3 delims=/. " %%a in ('date /t') do (set backupdate=%%c%%b%%a)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set backuptime=%%a%%b)

mysqldump --user=%usr% --databases %db% > %backupspath%%db%_%backupdate%_%backuptime%.sql

rem ============ RAR ============
rar a -m5 -df -ep "%backupspath%%db%_%backupdate%_%backuptime%.rar" "%backupspath%%db%_%backupdate%_%backuptime%.sql"
rem -m[0-5] - степень сжатия: 0 - без сжатия, 1 - скоростной, 2 - быстрый, 3 - обычный, 4 - хороший, 5 - максимальный
rem -df - удалять исходный файл (*.sql) после архивации
rem -ep - не включать полный путь в архив
Для создания ZIP-архивов:
@ECHO OFF

SET usr="root"
SET db="mydb"
SET backupspath=d:\backups\

PATH = %PATH%;[путь_к_каталогу_с_утилитой_mysqldump];[путь_к_каталогу_7-zip];

IF NOT EXIST %backupspath% mkdir %backupspath%

For /f "tokens=1-3 delims=/. " %%a in ('date /t') do (set backupdate=%%c%%b%%a)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set backuptime=%%a%%b)

mysqldump --user=%usr% --databases %db% > %backupspath%%db%_%backupdate%_%backuptime%.sql

rem ============ ZIP ============
rem 7z a -mx9 -sdel -tzip "%backupspath%%db%_%backupdate%_%backuptime%.zip" "%backupspath%%db%_%backupdate%_%backuptime%.sql"
rem -mx[1|3|5|7|9] - степень сжатия
rem -sdel - удалять исходный файл (*.sql) после архивации
rem -tzip - создавать zip-архив вместо дефолтного 7z

Добавлено: 25 июн 2015, 08:12
San4
:o офигеть! я думал там пару значений подставвить нужно было.
тогда для меня проще полученный дамп.sql уже потом самому заархивировать в пару кликов, через графический интерфейс WinRar.

Добавлено: 25 июн 2015, 10:48
Asmodey
San4 писал(а):я думал там пару значений подставвить нужно было.
Попробуйте разобраться :) Подход пригодится для автоматизации бэкапов.
Реализована куча приятных/необходимых мелочей!

ЗЫ. Ручками надоест на второй неделе.

Добавлено: 25 июн 2015, 13:54
San4
да, Ink0gnit0, спасибо! может и пригодится!
По поводу создания дампа и архивирования его в gzip нашел вот такую команду:
mysqldump -u USER -pPASSWORD DATABASE | gzip > /path/to/outputfile.sql.gz
и она работает - на выходе получаю архив .gz :shock: чем она отличается от предыдущих?
[spoiler="офтоп"]Ранее, я чего-то у себя сам натворил с утилитой mysqldump.exe. (постоянно выдавала ошибку: «не является приложением win32»)
Из-за этого у меня и не срабатывали команды в консоли. Я тогда подумал, что для консоли open-servera нужны другие команды. В итоге все ранее нагугленные мной команды – не работали.[/spoiler]

Добавлено: 25 июн 2015, 16:46
Ink0gnit0
San4, Конечный результат практически ничем не отличается, разве что степенью сжатия и сохранением истории бэкапов. Только скопируйте gzip в каталог, где расположен mysqldump. Запускать скрипт также нужно будет из этого каталога. Если хотите запускать команду из любого другого, добавьте путь к gzip и mysqldump в PATH переменных окружения.
Если вам не нужно хранить предыдущие бэкапы, тогда для вашего случая команда упрощается до:
mysqldump -uroot mydb | gzip > d:\backup\mydb.sql.gz
или
mysqldump -uroot -pr00t mydb | gzip > d:\backup\mydb.sql.gz

Re: Дамп БД с помощью mysqldump.exe

Добавлено: 28 авг 2021, 00:16
acvarif
У меня не получилось. Включил redis php.ini и создал команду в планировщике
mysqldump.exe --user=root --password=root --databases workflownew > D:\backup\mybd.sql
Перезапустил сервер. Не работает.
Время выставил так 0-59 0-23 1-31 1-12 1-7
Подскажите пожалуйста что не так?
Ну. Да. Время не правильно. Так правильно */1 * * * *
Но всеравно не работает.
Предполагаю что с путями к mysqldump.exe и D:\backup\mybd.sql что-то не так.
Пока не пойму, что.

Re: Дамп БД с помощью mysqldump.exe

Добавлено: 29 авг 2021, 18:07
Максим
acvarif писал(а): 28 авг 2021, 00:16 У меня не получилось. Включил redis php.ini и создал команду в планировщике
mysqldump.exe --user=root --password=root --databases workflownew > D:\backup\mybd.sql
Перезапустил сервер. Не работает.
Время выставил так 0-59 0-23 1-31 1-12 1-7
Подскажите пожалуйста что не так?
Ну. Да. Время не правильно. Так правильно */1 * * * *
Но всеравно не работает.
Предполагаю что с путями к mysqldump.exe и D:\backup\mybd.sql что-то не так.
Пока не пойму, что.
Указывайте полный путь к mysqldump.exe в задании.