Inno setup e MySQL

Fala pessoal, mais uma pra vocês:
Estamos precisando criar um pacote de instalação do nosso software. Além do jar, precisamos instalar o MySQL. Aí é que está o problema. A instalação do MySQL teria de ser oculto do usuário, mas para isso, teríamos de passar os parâmetros da instalação, bem como para a criação do bando de dados. Como poderíamos fazer isso? Qual o códico para o script. Não precisa ser no inno, pode ser também em outro software.
Desde já gratos pela ajuda.

baxa um pacote tipo que nem tem esse pacote chamado Easy - PHP que ja vem o mysql bunitinho

soh que dai eh para php

não sei se tem um para java tb

abrass :wink:

O problema é que o meu sistema tm que ir junto, na instalação do meu sistema é que deveria instalar o mysql, sem o usuário escolher nenhuma opção. Pois muita das vezes ele não vaisaber configurar, colocar o usuário do banco de acordo com o código java para logarno sistema, e o nome do banco de dados.

Antes de mais nada preste atenção na licença de distribuição dos softwares terceitos. O MySQL é GPL, sendo assim se você distribuir ele terá que distribuir seu sistema como GPL, senão você estará violando a licença.

Não lembro se o MySQL possui dual licence para esses casos.

Valeu pela observação garcia. Em outras palavras, meu software também será livre como o MySQL. Tendo eu que enviar o códico fonte, pois de acordo com a lincença, ele poderá ser modificado e distribuído também. Sendo que eu posso cobrar pelo sistema. Certo?

Temos agora total noção da questão da licença, e logicamente estar de acordo. Mas precisamos saber como fazer no inno para que fique pelo que parece no modo silencioso a instalação dele com os parâmetros de instalação já definidos. De repente nu script, ou num bat.

Eu não conheço a fundo a licença. Mas é uma coisa de pesquisar um pouco para fazer tudo certinho.

O que você pode fazer é usar um instalador para sua aplicação. Há diversos frameworks que fazem isso, all-in-one. Um que eu conheço, o open installer, é usado nos produtos da falecida Sun. O projeto está aqui: https://openinstaller.dev.java.net/

Se for em Linux você pode usar uns DEB ou RPM, que faz já a instalação e configuração para você, transparente ao usuário.

Se tua aplicação usa frameworks que persistencia Java como Hibernate ou Eclipselink, eles já podem criar toda a base para você. Ambos permitem que quando a aplicação for incializada, é feito um teste na base, e ela é criada ou atualizada com novas tabelas e campos.

Outra sugestão é fazer um ant-build. O ant (ant.apache.org) é uma ferramenta muito boa que permite vocẽ empacotar a aplicação, gerar base de dados, scripts, etc.

Nossa aplicação é para windows mesmo. o open installer fará a instalação do mysql oculto para o usuário?

Estamos precisando do código assim:

msiexec /i postgresql-8.1-int.msi /qr INTERNALLAUNCH=1 ADDLOCAL=“server,nls,psql” PERMITREMOTE=1 CREATESERVICEUSER=1 DOSERVICE=1 DOINITDB=1 SERVICEDOMAIN="%COMPUTERNAME%" SERVICEACCOUNT=“postgres” SERVICEPASSWORD=“postgres” SUPERUSER=“supervisor” SUPERPASSWORD=“01234” ENCODING=“LATIN1” TRANSFORMS=:lang_pt_br LISTENPORT=5432 BASEDIR=“c:\base_bd” DATADIR=“c:\base_bd\data”

Só que os parâmetros de instalação do MySQL. Esse código é do Postgres

Esperamos uma ajuda.

Realmente está difícil de conseguir a solução. Passamos a tentar uma outra: usar o mysql embutido na aplicação. Alguém saberia como implementar isso? Lembrando que nossa aplicação não irá trabalhar em rede e será opensource.

Se você der uma lida na documentação do open-installer verá que tem como executar comandos do sistema. Você pode executar esse teu comando para instalar o mysql ou até mesmo chamar o instalador dele.

Encontramos a pasta embedded só que com duas pastas dll e static. Em ambas, mais duas pastas: debug e release. Na pasta static tem os arquivos mysqlserver tanto o lib como o pdb. Já na pasta dll tem os arquivos libmysqld tanto o exp, como o lib, o pdb e o dll. Qual desses arquivos eu uso? Onde coloco no projeto Java? Precisa importatar os jars do connector mxj e acrescentar o mxj na conexão assim: DriverManager.getConnection(“jdbc:mysql:mxj://localhost/banco”,“usuario”,“senha”) ?
Esperamos uma ajuda.