Jump to content
Fivewin Brasil

Instalador com o MySql


evertonlb

Recommended Posts

Bom dia amigos, estou terminando um software e gostaria de fazer um arquivo de instalação.. na realidade estou bem familiarizado com o Install Creator, e tenho 90% de chances de usar ele.. o que acontece é que anteriormente eu usava DBF, e meu sistema criava sozinho os DBF´s, quando não encontrava na pasta de instalação, porem agora estou usando a SQLLIB e o MySql.

Como faço para incluir no meu instalador o meu banco de dados?

Tem outro instalador que, de repente, seria mais aconselhável usar para mandar junto minhas tabelas??

Como os nobres colegas fazem?

Att.

Link to comment
Share on other sites

Everton bom dia,

O MySQL eu creio que não tem como colocar em um instalador já que ele possui o seu próprio. Além disto, tem que configurar o servidor, forma de acesso, etc.

Quanto a criação das tabelas no MySQL aí sim, daria pra você fazer no teu próprio sistema, mas isto depois do servidor MySQL ser instalado e configurado corretamente.

Então basicamente você teria que ter 2 instaladores.

Link to comment
Share on other sites

Olá Galera,

Olha, tem como instalar o MySQL pelo instalador do seu programa sim. Por incrível que pareça, é até simples. No meu ERP eu instalo tudo pelo instalador.

Se não me engano, o Leonardo (Sygecom) me passou no encontro em BH, ele desenvolveu e me passou, dai adaptei ao meu instalador e roda legal.

Se ele autorizar eu posso disponibilizar o meu código para a galera, mas dependo da autorização dele.

Link to comment
Share on other sites

Olá Everton,

Para fazer a sua própria instalação com o MySql, voce faz o download da versão que voce usa mas sem o instalador e apenas o arquivo ZIP, ai voce coloca (descompacta ele) o mysql onde quiser e vai de boa.

Quando for gerar o instalador não esquecer de incluir a pasta onde voce descompactou o mysql, pode ser tipo c:\seusistema\mysql

Após de instalado voce executa o c:\seusistema\mysql\mysqld.exe

Daniel Segura

Link to comment
Share on other sites

Everton, com base no vídeo, segue o código para alterar o my.ini e startar o mysql em serviços

#include "FiveWin.ch"

Function Main()

  MsgRun( "Inicia serviço mysql...", "Aguarde!", { || FuncIniMysql() } )

Return nil
//------------------------------------------------------------------------------------------//

Function FuncIniMysql()
Local oIni, cPath := GetCurDir()+"\"

       INI oIni FILE cPath+"mysql\my.ini"
           SET SECTION "mysqld" ENTRY "basedir" TO StrTran(cPath+"mysql\", "\", "/")      OF oIni
           SET SECTION "mysqld" ENTRY "datadir" TO StrTran(cPath+"mysql\data\", "\", "/") OF oIni
       ENDINI

  MyRun(cPath+"mysql\bin\mysqld --install mysql_siav --defaults-file="+cPath+"mysql\my.ini")
  MyRun("net start mysql_siav")

Return nil
//------------------------------------------------------------------------------------------//
Function MyRun( cComando )
Local oShell, Ret

  oShell := CreateObject( "WScript.Shell" )
  Ret := oShell:Run( "%comspec% /c " + cComando, 0, .t. )
  oShell := NIL

Return Iif( Ret = 0, .t., .f. )

codigo do inno setup para add pasta e sub-pastas do mysql e executar o codigo acima

[Files]
Source: c:\SeuAplicativo\mysql\*; DestDir: {app}\mysql; Flags: ignoreversion recursesubdirs createallsubdirs

[Run]
Filename: {app}\startmysql.exe; Flags: waituntilidle

amanha coloco o código do unistall.

Link to comment
Share on other sites

exemplo: startmysql.prg - endmysql.prg e um script de exemplo inno setup ex: script.iss

*--------------------------------------------------------------------------------------------------------
NOTE startmysql.prg - programa q eh chamado pelo inno setup na instalacao de seu aplicativo (testado)
#include "FiveWin.ch"

Function Main()
  MsgRun( "Inicia serviço mysql...", "Aguarde!", { || FuncIniMysql() } )
Return nil
*-------------------
Function FuncIniMysql()
Local oIni, cPath := GetCurDir()+"\"

       INI oIni FILE cPath+"mysql\my.ini"
           SET SECTION "client" ENTRY "port" TO "3308" OF oIni
           SET SECTION "mysqld" ENTRY "port" TO "3308" OF oIni
           SET SECTION "mysqld" ENTRY "basedir" TO StrTran(cPath+"mysql\", "\", "/")      OF oIni
           SET SECTION "mysqld" ENTRY "datadir" TO StrTran(cPath+"mysql\data\", "\", "/") OF oIni
       ENDINI

  MyRun(cPath+"mysql\bin\mysqld --install NomeDoServico --defaults-file="+cPath+"mysql\my.ini")
  MyRun("net start NomeDoServico")

Return nil
*-------------------
Function MyRun( cComando )
Local oShell, Ret

  oShell := CreateObject( "WScript.Shell" )
  Ret := oShell:Run( "%comspec% /c " + cComando, 0, .t. )
  oShell := NIL

Return Iif( Ret = 0, .t., .f. )

*--------------------------------------------------------------------------------------------------------

NOTE endmysql.prg - programa q eh chamado pelo inno setup na desistalacao (nao testado)
#include "FiveWin.ch"

Function Main()
  MsgRun( "Removendo serviço mysql...", "Aguarde!", { || FuncIniMysql() } )
Return nil
*-------------------
Function FuncIniMysql()
Local oIni, cPath := GetCurDir()+"\"

  MyRun("net stop NomeDoServico")
  MyRun(cPath+"mysql\bin\mysqld --remove NomeDoServico")

Return nil
*-------------------
Function MyRun( cComando )
Local oShell, Ret

  oShell := CreateObject( "WScript.Shell" )
  Ret := oShell:Run( "%comspec% /c " + cComando, 0, .t. )
  oShell := NIL

Return Iif( Ret = 0, .t., .f. )

*--------------------------------------------------------------------------------------------------------
; EXEMPLO DE Script Inno Setup 
; copie e salvar com a extensao .ISS ex: test.iss abrir/editar para suas necessidades com inno setup

[Setup]
AppName=TESTE-SEU APLICATIVO TESTE
AppVerName=VERSAO v1.0 SET/2013
AppPublisher=SUA EMPRESA
AppPublisherURL= SUA URL http://www.SEUSITE.com/
AppSupportURL=http://www.SEUSITE.com/
AppUpdatesURL=http://www.SEUSITE.com/
DefaultDirName=c:\PATH_SEU_APLICATIVO_PADRAO
;DefaultDirName={pf}\SeuAplicativo  && retire o ponto e virgula para o padrao de instalacao ser a pasta arquivos de programas - PF= ARQUIVOS DE PROGRAMAS (DIRETORIO)
DefaultGroupName=SeuAplicativoNome  && grupo de seu aplicativo, exemplo: SIAV
AllowNoIcons=yes   // nao lembro uq ser
LicenseFile=c:\seuaplicativo\leia-me.txt  && um arquivo de lincença de uso caso tenha
DiskSpanning=no  // nao lembro
; uncomment the following line if you want your installation to run on NT 3.51 too.
; MinVersion=4,3.51   && algo sobre versao do windows onde o plicativo pode ser instalado, ver video

[Tasks]
Name: desktopicon;     Description: Criar ícone no &Desktop; GroupDescription: Additional icons:; MinVersion: 4,4
Name: quicklaunchicon; Description: Criar ícone &Quick Launch; GroupDescription: Additional icons:; MinVersion: 4,4

; as linhas abaixo eh para poder escolher na instalacao se eh servidor ou estacao, caso seja estacao nao vai instalar a pasta mysql e nao vai executar os arquivo dos prg acima (types)
[Types]
Name: estacao; Description: Instalar SeuAplicativoNome (estações de trabalho)
Name: servidor; Description: Instalar SeuAplicativoNome e base de dados (servidor)

; as linhas abaixo eh para poder escolher na instalacao se eh servidor ou estacao, caso seja estacao nao vai instalar a pasta mysql e nao vai executa os arquivos dos prgs acima (components)
[Components]
Name: clientFiles; Description: Instalar SeuAplicativoNome (estações de trabalho); Types: estacao
Name: serverFiles; Description: Instalar SeuAplicativoNome e base de dados (servidor); Types: servidor

; as linhas abaixo eh para adicionar arquivos na pasta de instacao de do seu aplicativo
[Files]
Source: c:\Pasta_origem\SeuAplicativo.exe; DestDir: {app}; Flags: ignoreversion   && seu aplicativo principal
Source: c:\Pasta_origem\startmysql.exe;  DestDir: {app}; Flags: ignoreversion; Components: serverFiles  && add o startmysql.exe (startmysql.prg) caso seja o servidor a sua escolha na instalacao
Source: c:\Pasta_origem\endmysql.exe;  DestDir: {app}; Flags: ignoreversion; Components: serverFiles  && add o endmysql.exe (endmysql.prg) caso seja o servidor a sua escolha na instalacao
Source: c:\Pasta_origem\teste.dll  DestDir: {app}; Flags: ignoreversion   && outros arquivos 
Source: c:\Pasta_origem\logo.bmp;  DestDir: {app}\imagens; Flags: ignoreversion  && outros exemplo, copia para subpasta de seu aplicativo, no caso imagens. ex: c:\SeuAplicativo\Imagens 
Source: c:\Pasta_origem\mysql\*;   DestDir: {app}\mysql; Flags: ignoreversion recursesubdirs createallsubdirs; Components: serverFiles  && add a pasta/sub-pastas do mysql em seu aplicativo ex: c:\SeuAplicativo\Mysql  obs: ver video do post

Source: c:\Pasta_origem\fontes\Code128bWin.ttf;  DestDir: {fonts}; FontInstall: Code128bWin; Flags: onlyifdoesntexist  && exemplo para add alguma fonte no windows 

Source: c:\Pasta_origem\nfe_util\*;  DestDir: {app}\nfe_util; Flags: ignoreversion recursesubdirs createallsubdirs  && exemplo para instalar a pasta e sub-pastas da flexdocs no seu aplicativo
Source: Pasta_origem\leiame.txt; DestDir: {app}\dir9\pdf; Flags: ignoreversion

; exemplo abaixo, criar algo no registro do windows (remova se necessario)
[Registry]
Root: HKLM; Subkey: Software\microsoft\SeuAplicativo; ValueType: string; ValueName: InstallPath; Valuedata: {app}  && guarda o valor do path onde foi instalado seu aplicativo na chave InstallPath
Root: HKLM; Subkey: Software\microsoft\SeuAplicativo; ValueType: string; ValueName: Version; Valuedata: 1.0        && versao caso queria
;Root: HKCU; Subkey: "Software\Microsoft\Internet Explorer\Main"; ValueType: string; ValueName: "Start Page"; Valuedata: "http://www.SeuSite.com/"   && outro exemplo

[INI]
Filename: "{app}\SEUsite.url"; Section: "InternetShortcut"; Key: "URL"; String: "http://www.SeuSite.com"     &&  <=  mais 1 exemplo, remova 

; configura ou remova de acordo com sua necessidades
[Icons]
Name: {group}\TEST; Filename: {app}\SeuAplicativo.EXE; WorkingDir: {app}      
Name: {group}\WebSite; Filename: {app}\SeuSite.url                            
Name: {userdesktop}\TEST; Filename: {app}\SeuAplicativo.EXE; WorkingDir: {app}; MinVersion: 4,4; Tasks: desktopicon   
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\SuaEmpresa teste Informática; Filename: {app}\SeuAplicativo.EXE; WorkingDir: {app}; MinVersion: 4,4; Tasks: quicklaunchicon

; executa o startmysql.exe no final da instalacao e abre seu aplicativo logo depois
[Run]
Filename: {app}\startmysql.exe; Flags: waituntilidle; Components: serverFiles
Filename: {app}\SeuAplicativo.EXE; Description: Executar SeuAplicativo; Flags: nowait postinstall skipifsilent

; executa o endmysql.exe na desinstalacao
[UninstallRun]
Filename {app}\endmysql.exe; Flags: waituntilidle

; mais exemplo, vc pode remover
[UninstallDelete]
Type: files; Name: {app}\SeuSite.url

espero que ajude

t+

Link to comment
Share on other sites

  • 2 weeks later...

soh para completar

segue codigo inno setup para liberar a porta no firewall do windows, testado no win8 e win7

[Run]
Filename: {sys}\netsh.exe; Parameters: "firewall add portopening protocol=TCP port=3308 name=""mysqlsiav"" mode=ENABLE scope=SUBNET"; Flags: nowait runhidden; MinVersion: 0,5.01.2600
Link to comment
Share on other sites

soh para completar

segue codigo inno setup para liberar a porta no firewall do windows, testado no win8 e win7

[Run]
Filename: {sys}\netsh.exe; Parameters: "firewall add portopening protocol=TCP port=3308 name=""mysqlsiav"" mode=ENABLE scope=SUBNET"; Flags: nowait runhidden; MinVersion: 0,5.01.2600

Muito bom, não sabia destes recursos. Obrigado por compartilhar.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...