arama yaptım ama yeterince ayrıntıl yok .. baska forumlardada aradım .. guzel bir dokuman yok ..
inno setup ile mysql kurulumunu yapabilirmiyiz ?
elinde hazır script olan var mı ?
inno setup mysql kurulumu ..
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
arkadaşım ben inno setup değilde NSI kullnıyorum ama yapı aynı sanırım. ben mysql'i kurmak için kendime bir exe dosya hazırladım. bu exe hem ini dosyasını yapılandırıyor hemde mysqli kuruyor. tabi bu işi NSI ve inno setup içindende yapmak mümkün ama sonradan keşfettim uğraşmadım üzerinde. aşağıdakiler mysql 4.1.x den sonrası için geçerlidir. bu sürümden sonra my.ini dosyası mysql klasörü içinde olabiliyor windows içinde olması şart değil. eğer eski sürümler için kullanacaksan değiştir.
----- my.ini dosyasının adını my.org diye değiştirip şu şekilde kaydettim --
[client]
port=3306
[mysqld]
port=3306
basedir="#/#/mysql/"
datadir="#/#/mysql/Data/"
default-character-set=latin5
language=#/#/mysql/share/turkish
default-storage-engine=MYISAM
max_connections=100
query_cache_size=8M
table_cache=256
tmp_table_size=5M
thread_cache=8
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=8M
key_buffer_size=8M
read_buffer_size=64K
read_rnd_buffer_size=185K
sort_buffer_size=139K
skip-innodb
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=8M
innodb_log_file_size=10M
innodb_thread_concurrency=8
---------- kur.exe programın bir consol aplication ------------
program kur;
{$APPTYPE CONSOLE}
uses
SysUtils, Windows;
Function WinExecute32Wait(FileName : AnsiString) : integer;
var
zAppName:array[0..512] of char;
zCurDir:array[0..255] of char;
WorkDir:String;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
res : DWord;
begin
StrPCopy(zAppName,FileName);
GetDir(0,WorkDir);
StrPCopy(zCurDir, ExtractFilePath(FileName));
FillChar(StartupInfo, Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := SW_HIDE; // hide the application window
// StartupInfo.wShowWindow := SW_SHOW;
if not CreateProcess(nil,
zAppName, { pointer to command line string }
nil, { pointer to process security attributes}
nil, { pointer to thread security attributes }
false, { handle inheritance flag }
CREATE_NEW_CONSOLE or { creation flags }
NORMAL_PRIORITY_CLASS,
nil, { pointer to new environment block }
nil, { pointer to current directory name }
StartupInfo, { pointer to STARTUPINFO }
ProcessInfo) then Result := 0 { pointer to PROCESS_INF }
else begin
WaitforSingleObject(ProcessInfo.hProcess,INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess, res);
result := res;
end;
end;
var
ogr,ini: TextFile;
klasor,klasorters,satir:string;
begin
{ TODO -oUser -cConsole Main : Insert code here }
klasor := GetCurrentDir;
klasorters := stringreplace(klasor,'\','/',[rfReplaceAll]);
Assignfile(ogr,klasor+'\mysql\my.org');
Assignfile(ini,klasor+'\mysql\my.ini');
Reset(ogr);
Rewrite(ini);
while eof(ogr)=false do
begin
readln(ogr,satir);
satir := trim(satir);
satir := stringreplace(satir,'#/#',klasorters,[rfReplaceAll]);
writeln(ini,satir);
end;
close(ogr);
close(ini);
if ParamStr(1) = 'kur' then
begin
// 0 hata vermedi demek
WinExecute32Wait(klasor+'\mysql\bin\mysqld-nt --install MySQL --defaults-file="'+klasor+'\mysql\my.ini"');
WinExecute32Wait('net start MySQL');
end;
if ParamStr(1) = 'sil' then
begin
WinExecute32Wait('net stop MySQL');
WinExecute32Wait(klasor+'\mysql\bin\mysqld-nt --remove');
end;
end.
----- my.ini dosyasının adını my.org diye değiştirip şu şekilde kaydettim --
[client]
port=3306
[mysqld]
port=3306
basedir="#/#/mysql/"
datadir="#/#/mysql/Data/"
default-character-set=latin5
language=#/#/mysql/share/turkish
default-storage-engine=MYISAM
max_connections=100
query_cache_size=8M
table_cache=256
tmp_table_size=5M
thread_cache=8
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=8M
key_buffer_size=8M
read_buffer_size=64K
read_rnd_buffer_size=185K
sort_buffer_size=139K
skip-innodb
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=8M
innodb_log_file_size=10M
innodb_thread_concurrency=8
---------- kur.exe programın bir consol aplication ------------
program kur;
{$APPTYPE CONSOLE}
uses
SysUtils, Windows;
Function WinExecute32Wait(FileName : AnsiString) : integer;
var
zAppName:array[0..512] of char;
zCurDir:array[0..255] of char;
WorkDir:String;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
res : DWord;
begin
StrPCopy(zAppName,FileName);
GetDir(0,WorkDir);
StrPCopy(zCurDir, ExtractFilePath(FileName));
FillChar(StartupInfo, Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := SW_HIDE; // hide the application window
// StartupInfo.wShowWindow := SW_SHOW;
if not CreateProcess(nil,
zAppName, { pointer to command line string }
nil, { pointer to process security attributes}
nil, { pointer to thread security attributes }
false, { handle inheritance flag }
CREATE_NEW_CONSOLE or { creation flags }
NORMAL_PRIORITY_CLASS,
nil, { pointer to new environment block }
nil, { pointer to current directory name }
StartupInfo, { pointer to STARTUPINFO }
ProcessInfo) then Result := 0 { pointer to PROCESS_INF }
else begin
WaitforSingleObject(ProcessInfo.hProcess,INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess, res);
result := res;
end;
end;
var
ogr,ini: TextFile;
klasor,klasorters,satir:string;
begin
{ TODO -oUser -cConsole Main : Insert code here }
klasor := GetCurrentDir;
klasorters := stringreplace(klasor,'\','/',[rfReplaceAll]);
Assignfile(ogr,klasor+'\mysql\my.org');
Assignfile(ini,klasor+'\mysql\my.ini');
Reset(ogr);
Rewrite(ini);
while eof(ogr)=false do
begin
readln(ogr,satir);
satir := trim(satir);
satir := stringreplace(satir,'#/#',klasorters,[rfReplaceAll]);
writeln(ini,satir);
end;
close(ogr);
close(ini);
if ParamStr(1) = 'kur' then
begin
// 0 hata vermedi demek
WinExecute32Wait(klasor+'\mysql\bin\mysqld-nt --install MySQL --defaults-file="'+klasor+'\mysql\my.ini"');
WinExecute32Wait('net start MySQL');
end;
if ParamStr(1) = 'sil' then
begin
WinExecute32Wait('net stop MySQL');
WinExecute32Wait(klasor+'\mysql\bin\mysqld-nt --remove');
end;
end.
soru yineleme
iyi günler
Aynı sorunu bende yaşıyorum. Farklı bir alan açmak istemedim.
Arkadaşımız cevap vermiş ancak inno içinden halletmek istiyorum.
inno ile hazırlanmış mysql kurulumuda yapan bir örnek yada döküman varsa yardımcı olabilirmisiniz ?
Aynı sorunu bende yaşıyorum. Farklı bir alan açmak istemedim.
Arkadaşımız cevap vermiş ancak inno içinden halletmek istiyorum.
inno ile hazırlanmış mysql kurulumuda yapan bir örnek yada döküman varsa yardımcı olabilirmisiniz ?
bu kurulum sadece XP ve 2000 için geçerlidir. NT ile de çalışabilir.
aynı exe'yi innonadada kullanabilirsin. mysql'i programın yükleneceği klasör içinde mysql adında bir klasöre kuruyor. setup programında mysql dizinibdeki tüm dosyaları programınızın içindeki mysql klasörüne kopyalacak şekilde ayarlayın. bu klasöre my.org dosyasınıda atmayı unutmayın. dosya kopyalama işlemi bittikten sonra kur.exe'yi çağıran fonksiyonu kullanın.
aynı exe'yi innonadada kullanabilirsin. mysql'i programın yükleneceği klasör içinde mysql adında bir klasöre kuruyor. setup programında mysql dizinibdeki tüm dosyaları programınızın içindeki mysql klasörüne kopyalacak şekilde ayarlayın. bu klasöre my.org dosyasınıda atmayı unutmayın. dosya kopyalama işlemi bittikten sonra kur.exe'yi çağıran fonksiyonu kullanın.
ben inno kullanmadım. NIS'de
şeklindeydi. Kendi sitesinde vardır innonun.
Kod: Tümünü seç
winexec('kur.exe')