Как экспортировать таблицы MySQL БД.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Как экспортировать таблицы MySQL БД.

Сообщение Slava1970 » 16.11.2016 10:46:26

Здравствуйте. Помогите сделать экспорт и сохранение, и соответственно восстановлению таблиц
БД на MySQL. Предполагаю, что он должен быть. Или подскажите набор команд.
Спасибо.
Slava1970
новенький
 
Сообщения: 24
Зарегистрирован: 19.08.2016 12:26:38

Re: Как экспортировать таблицы MySQL БД.

Сообщение Deimos » 16.11.2016 12:49:03

Самый простой вариант - использовать внешний mysqldump.
Deimos
постоялец
 
Сообщения: 169
Зарегистрирован: 17.01.2010 00:31:30

Re: Как экспортировать таблицы MySQL БД.

Сообщение Slava1970 » 16.11.2016 13:58:21

Спасибо. Буду думать в сторону обработок самого MySql. Запросами.
Slava1970
новенький
 
Сообщения: 24
Зарегистрирован: 19.08.2016 12:26:38

Re: Как экспортировать таблицы MySQL БД.

Сообщение Снег Север » 16.11.2016 16:31:26

Утилита HeidiSQL - http://www.heidisql.com/download.php
Очень удобная, в т.ч. для экспорта, можно сразу перенести базу с одного сервера на другой удаленно. Пользуюсь ею постоянно уже много лет.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2995
Зарегистрирован: 27.11.2007 16:14:47

Re: Как экспортировать таблицы MySQL БД.

Сообщение WAYFARER » 16.11.2016 18:20:45

Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 518
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Как экспортировать таблицы MySQL БД.

Сообщение Deimos » 16.11.2016 23:55:59

Я понял вопрос в контексте использования программирования.

Код: Выделить всё
procedure dump(dumpname: string; showmsg: boolean);
var
   ap:tprocess;
   dpath:string;
begin
   dpath:=setdirseparators(extractfilepath(paramstr(0))+'bdump\');
   if not directoryexists(dpath) then createdir(dpath);
   ap:=tprocess.create(nil);
   ap.Options:=ap.Options+[powaitonexit, poUsePipes];
   ap.ShowWindow:=swoHide;
   ap.CurrentDirectory:=extractfilepath(paramstr(0));
   ap.CommandLine:='mysqldump -u'+setup.getsqluser+' -p'+setup.getsqlpass+' -P'+inttostr(setup.getsqlport)+' -h'+setup.getsqlsrv+' '+setup.getsqlbase+' --result-file='+dumpname;
   try
     ap.Execute;
     if showmsg then application.MessageBox(pchar('Резервная копия базы данных создана. '+'"'+dumpname+'"'), 'Информация',MB_OK+MB_ICONinformation);
   finally
     ap.free;
   end;
end; 


выдержка из рабочего кода...

Снег Север писал(а):Утилита HeidiSQL


Абсолютно согласен и сам много лет использую.

ремарка: Когда, в мою бытность юным, мне был интересен проект Мангос - меня раздражало использование навиката, как рекомендуемого инструмента, поскольку ломан.

WAYFARER писал(а):https://habrahabr.ru/post/105954/


Остальные вопросы, более чем полностью, освещает

WAYFARER
[/quote]
Deimos
постоялец
 
Сообщения: 169
Зарегистрирован: 17.01.2010 00:31:30

Re: Как экспортировать таблицы MySQL БД.

Сообщение sign » 17.11.2016 06:50:31

Из работающей программы.

Код: Выделить всё
function TDM.SaveDataBase: Boolean;
var S, SDir: String;
    TDir: WideString;
    prc: String;
    ParamString: String;
    P: TProcessUTF8;
    i: Integer;
begin
  Result := False;
  S := ParamStr(0);  // Путь к программе
  SDir := ExtractFilePath(S);
  TDir := Utf8ToAnsi(NewArchiveName(SDir + CDirArchiveData + '\'));
  if TDir = '' then Exit;
  if not ForceDirectories(TDir) then Exit;
  S := con.DatabaseName;
  ParamString :=  Format(' -uroot -hlocalhost %s --result-file="%s%s.sql"', [S, TDir, S]) + #0;
  prc := 'C:\Program Files\MySQL\MySQL Workbench 5.2 CE\mysqldump.exe';
  S := prc + ParamString;
  P := TProcessUTF8.Create(nil);
  P.CommandLine := prc + ParamString;
  P.Options := P.Options + [poWaitOnExit, poNoConsole];
  P.Execute;
  Result := P.ExitStatus = 0;
  P.Free;
end;


Код: Выделить всё
function TDM.LoadDataBase(const ArchName: String): Boolean;
var S: String;
    ParamString: String;
    H: HINST;
    L: TStringList;
begin
  // Восстановить из архива
  S := UTF8ToCP1251(PathToArchive + ArchName + '\');
  ParamString := Format('cmd.exe /c mysql -uroot -hlocalhost %s<"%s%s.sql"', [con.DatabaseName, S, con.DatabaseName]);
  L := TStringList.Create;
  L.Add('chcp 1251 > nul');
  L.Add(ParamString);
  L.Add('set "str1=%~dp0"');
  L.Add('set "str2=rest.bat"');
  L.Add('set "str4=%str1%%str2%"');
  L.Add('del %str4%');
  L.SaveToFile(PathToArchive + 'rest.bat');
  L.Free;
  con.Connected := False;
  ParamString := PathToArchive + 'rest.bat';
  H := ShellExecute(0, nil, pChar(ParamString), nil, nil, SW_SHOW);
  while FileExistsUTF8(ParamString) do;
  con.Connected := True;
  DeleteFileUTF8(ParamString);
  Result := H >= 40;
end;
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Как экспортировать таблицы MySQL БД.

Сообщение Slava1970 » 17.11.2016 11:02:50

Спасибо. Благодарю вас.
Slava1970
новенький
 
Сообщения: 24
Зарегистрирован: 19.08.2016 12:26:38


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 76

Рейтинг@Mail.ru