| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Базы данных > Программный дпмп базы данных |
| Автор: Incinerated 26.1.2010, 10:00 | ||||
| Есть MySQL5 сервер, расположенный на удаленной машине. Есть программа, которая работает с ним, через mysql.h и dll. Хочу сделать программный бэкап определенной БД ну или таблиц по очереди, если бд нельзя, чтоб не мучать пользователя инструкциями по установке каких то других программ типа Navicat, и объяснять как там сделать дамп бд... гугл выдет только утилиту mysqldump, но это не совсем через мою программу, да и что то не получается с ней
в итоге получается строка типа
порт у меня не стандартный, а 3309. И не делает дамп даже так, а хотелось бы просто без других утилиток, Navicat же как то делает дамп, у него в директории я не нашел этой утилитки. А если просто запустить cmd и написать эту строку, то все отличное бэкапится :( И хотелось конечно обратный процесс тоже разобрать. |
| Автор: mrbrooks 26.1.2010, 10:20 | ||
Incinerated, если гришь, что через консоль работает, то так как?
|
| Автор: Incinerated 26.1.2010, 10:45 | ||||
так он даже консоль не запускает =\ сначала так пробовал, но ничего не вышло, потом попробовал использовать запуск в параметром, консоль запускается но бэкап не делается.... быстро запускается и пропадает, что то там выводит в него текст какой, а что не успеваешь прочитать :( |
| Автор: mrbrooks 26.1.2010, 11:19 | ||
по хорошему использовать бы CreateProcess |
| Автор: Incinerated 26.1.2010, 11:38 | ||
консоль то запускается, я помучал свои глаза и рассмотрел что там мелькает пишет
|
| Автор: mrbrooks 26.1.2010, 16:42 | ||
Incinerated, в общем что бы не возиться с ShellExecute используй CreateProcess. Как я делаю у себя:
думаетсо стоит заюзать параметр -r вместо >. как у меня в примере. |
| Автор: Incinerated 26.1.2010, 17:15 | ||||
| с параметром -r все работает, спасибо... а вот как назад? что так
что так
не работает программно, в консоли работает первый вариант :( посмотрел параметры mysql, вроде там нет read параметра, а -r это же запись, как можно залить назад этот бэкап? |
| Автор: mrbrooks 27.1.2010, 10:16 | ||||
| Incinerated, ну камрад. исхитрись. к примеру создай батник в каталоге со своей тузлой:
вызови его так
и возрадуйся. |
| Автор: Alca 27.1.2010, 10:21 |
| http://msdn.microsoft.com/en-us/library/ms682425(VS.85).aspx |
| Автор: mrbrooks 27.1.2010, 10:24 |
| Alca, отличная мысль камрад |
| Автор: Alca 27.1.2010, 10:40 | ||
Вроде этот код работал... Добавлено через 52 секунды http://msdn.microsoft.com/en-us/library/ms682512(VS.85).aspx |
| Автор: mrbrooks 27.1.2010, 11:12 |
| Alca, да здесь у нас трабла с символами '<' or '>' в параметрах. Я вижу обход этого в использовании bat-файла (при условии, что если нет аналога ввода/ввыода другими параметрами). |
| Автор: Incinerated 28.1.2010, 13:50 |
| всем спасибо, все работает... бэкап делается с помощью параметра -r,а заливаю назад батником. и там и там параметр видимости установлен в SW_HIDE для процесса, и все делается незаметно |