Iniciar o MySql automaticamente

Olá,

Minha aplicação Swing utiliza o MySql ( c/ Hibernate ) . Como posso fazer para , ao clicar no ícone do aplicativo, o MySql seja carregado ? Hoje, no desenvolvimento, eu o carrego na mão ( cdmysql; cd bin; mysqld ), mas não gostaria de pedir isto ao usuário. Também não gostaria de carregar o MySql ao iniciar a máquina, pois haverá poucos momentos nos quais ele utilizará o sistema.

Obrigado,

Márcio Aun Migueis

Ao iniciar o programa na classe construtora por exemplo…
Execute o comando para startar o banco…

java.lang.Runtime rt = Runtime.getRuntime();
java.lang.Process prcs = rt.exec("/mysql/bin/mysqld");

T+

PS : Não esqueça de botar a ação de fechar a janela para parar o banco.

Como deveria fazer para fechar ?

[quote=“yuusuke_urameshi2”]Ao iniciar o programa na classe construtora por exemplo…
Execute o comando para startar o banco…

java.lang.Runtime rt = Runtime.getRuntime();
java.lang.Process prcs = rt.exec("/mysql/bin/mysqld");

T+

PS : Não esqueça de botar a ação de fechar a janela para parar o banco.[/quote]

Isto é realmente adequado / seguro???

Para fechar poderia ser assim…

//
// Desabilita a saida autom�tica quando bot�o close clicado...
//
jframe.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);

//
// Controla o evento do bot�o close da janela...
//
jframe.addWindowListener(
   new WindowAdapter()
   {
      public
      void         windowClosing(WindowEvent we)
      {
         java.lang.Runtime rt = Runtime.getRuntime();
	 java.lang.Process prcs = rt.exec("comando para parar o banco"); 
      }
   }
);

Sobre ser seguro…

Bem… isso deixa a aplicação especifica para essa situação… pois para startar o banco sempre terá que ter o mysql naquela pasta e aquele executável…Mas isso até que pode ser contornavel… poderia-se colocar o caminho de execução para startar o banco em um arquivo texto e a aplicação ler esse texto…
O problema disso tudo é que ele não garante que o banco realmente foi startado… bem… pelo menos acho que não…
Mas tb não vejo de imediato outra maneira de se fazer isso…

T+…

Gente muito boa,

Mais uma vez as respostas vieram rápidas e boas. Eu nem tinha me tocado da necessidade de fechar o banco ao sair da minha aplicação.

Obrigado Obrigado,

Márcio Aun Migueis

Que tal, ao inves de usar o MySQL, que eh feito pra uma arquitetura cliente-servidor totalmente diferente do que vc esta usando, usar um HSQLDB da vida? :smiley:

http://hsqldb.sourceforge.net/

Posso abusar ?

Andei dando uma olhada (rápida pois estou no meu trabalho ) na página do HSQLDB. Pelo que entendi, há uma ferramenta que importará as estruturas das tabelas já definidas no MySql.

Sou novato também em MySql, e uma das coisas que me agradou foi o controlador visual ( acho que chama Control Center ) que permite alterar as definições das tabelas, ver os dados etc … Esta facilidade também está presente no HSQLDB ?

Gostei de saber que o HSQLDB tem uma função de compactação da base.

Quais as outras vantagens que eu obteria ? Trocando de banco, bastaria trocar o arquivo de configuração do Hibernate ??? Ele é mais rápido ??? Mais simples de administrar ??? Tem algum plugin ( que traga vantagens ) para o Eclipse ???

Obrigado desde já

Márcio

Detesto ser estraga-prazeres, mas acho que para distribuir o MySQLsdeste jeito, você irá precisar de uma licança comercial:
http://www.mysql.com/products/licensing/commercial-license.html

Uma das piores coisas do MySQL é este esquema de licenciamento confuso…

[]s

Estanho.

Quer dizer se eu faço uma aplicação, eu não posso utilizar o MySql sem uma licença paga ? Se eu abrir meu fonte, eu poderei usar o MySql gratuitamente ? Meu fonte não é meu , mas da empresa que está me pagando para desenvolver o sistema . Como faço para transformar meu sistema em GPL ou algo compatível ?

Alguém mais utiliza o HSQLDB, ou ele também tem problemas de lincenciamento ??

Valeu.

Márcio

Depois de muito tempod ebatendo esta jossa de licença, cheguei a uma conclusão: Sua aplicação pode utilizar MySQL como servidor, não pode tê-lo embutido.

  1. Se a MySQL AB tivesse algum fundamento, programas não-GPL que usam MySQL sem a licença comercial do sgbd nem são GPL [e o que mais tem por aí é isso], ela já tinha processado todo mundo [uhm…SCO?]

  2. Linux é GPL. Meu programa roda utilizando serviços do Linux, não faz parte do Linux, logo não precisa ser GPL. MySQL é GPL, meu programa usa serviços do MySQL, não faz parte do MySQL, logo não precisa ser GPL [por isso os embeebed não poderiam ser criados

Sei lá, eu trabalho assim. Tô de saco cheio desta licença :stuck_out_tongue:

Mas pro q vc quer, o HSQLDB deve dar e sobrar, é baum msm :slight_smile:

http://www.guj.com.br/forum/viewtopic.php?t=11008