[RE]Dúvida, existe a possibilidade da minha aplicação LOCAL, usar o banco de dados do servidor?

29 respostas
EduFranzoni

Boa tarde, pessoal.

existe a possibilidade da minha aplicação local usar o banco de dados do servidor?

Tenho a aplicação local e em produção. o problema é que
o banco de dados local sumiu. existe alguma maneira de montar o banco de dados local novamente?
sendo que não possuo os scripts de criação de tabela.

o banco de dados é mysql. e a instancia foi removida. ou nunca existiu aqui nessa máquina.

valeu pessoal.

29 Respostas

romarcio

Vai no gerenciador do mysql do servidor e gera um arquivo de exportação. Depois importa ele na maquina local.

cristianovieira

Olá EduFranzoni bom eu entendi que você está fazendo uma aplicação local e quer que essa aplicação conecte em um banco de dados “no servidor” ou seja, em outro computador. Bom se for isso mesmo tem sim, apenas edite a sua classe de conexão (que por sinal já poderia ter colado junto com a pergunta) e altere o endereço do servidor, bom nos de mais informações sobre frameworks de persistência (se usa ? qual usa?), etc… etc… pois cada caso é uma configuração diferente. Ficamos no aguardo mas tem como sim. Abraço.

EduFranzoni

então cara, tem como da uma força melhor ainda?
sou leigasso. e to com essa buxa na mão aki na empresa (estagiario sem supervisor. mas dexa pra la neh)

como faço para iniciar o gerenciador do mysql no servidor?

por exemplo, para logar no mysql utilizo

#mysql -p
depois entro com a senha.

e depois de entrar no gerenciador? o que fazer?

se puder me ajudar ficarei muito grato.

também precisaria descobrir a versão do mysql do servidor.

obrigado.

EduFranzoni

Cara, eu intendi, eu fiz o teste utilizando o ip do servidor e não funcionou. mas mesmo assim isso não seria o ideal. seria a “ultima cartada”. pois todos os testes realizados aqui. afetaria o banco de dados que está em produção.

o ideal mesmo seria conseguir replicar o banco de dados que está em produção. aqui na minha máquina. o amigo acima postou o que eu quero, mas infelismente não sei como fazer.

obrigado. att

cristianovieira

OK vamos partir do principio que você está precisando de importar o banco mysql do servidor para sua máquina e não conectar o sistema no banco do servidor.

Bom você pode fazer isso utilizando o DOS que eu acho que não é a forma mais digamos didática então vamos utilizar um gerenciador de banco de dados, bom vamos usar o HeidiSQL, faça o download instale, pode ser no seu computador local mesmo. Quando abrir o programa vai existe uma tela aonde você faz a configuração do servidor, depois de conectado apenas selecione a base que quer fazer a exportação e clique no menu export depois em exporte table as SQL, selecione todas as tabelas va na guia destination selecione Structure e Data, la em FILE informe aonde vai ser salvo o arquivo sql e clique em EXPORT. Pronto o seu banco foi importado do servidor para o seu computador.

EduFranzoni

velho, não consigo acessar.

na primeira tela onde coloca-se o ip do servidor, usuario e senha. e tipo de rede.

selecionei ssh. coloquei o ip do servidor, o usuario root e a senha. mas da um erro. “Couldn’t execute PLink…”

romarcio

Tenta assim:

shadowzaum

Pra ficar mais facil, da para fazer pelo prompt. As partes em maiusculo você troca da sua forma ai.
Os comando são os seguintes:

mysqldump -u USUARIO -p NOME_DA_TABELA > NOME_DA_TABELA.sql

e para carregar na sua maquina local é com

mysql -u USUARIO -p < NOME_DA_TABELA.sql

Lembrando que para isso é necessario ter acesso de root e isso é feito no prompt ou terminal diretamente.

cristianovieira

Bom segue em anexo o print da tela de conexão, e abaixo segue a descrição da versão que estou usando do Heidi.

Version 3.0 Revision 572

EduFranzoni

shadowzaum:
Pra ficar mais facil, da para fazer pelo prompt. As partes em maiusculo você troca da sua forma ai.
Os comando são os seguintes:

mysqldump -u USUARIO -p NOME_DA_TABELA > NOME_DA_TABELA.sql

e para carregar na sua maquina local é com

mysql -u USUARIO -p < NOME_DA_TABELA.sql

Lembrando que para isso é necessario ter acesso de root e isso é feito no prompt ou terminal diretamente.

Acredito que pelo terminal seja mais fácil mesmo!

Para qual diretório o arquivo gerado vai?

Obrigado mais uma vez pessoal. vivendo e aprendendo muito. rs.

EduFranzoni

e depois, que eu obter o arquivo .sql. na minha maquina windows.

o que devo fazer?

configurar uma instancia em qualquer versão do mysql, ou a versão tem que ser a mesma?

e para importar aqui na máquina local (windows), eu uso o dos ou a parte de importar digito direto na tela dos do mysql?

att

cristianovieira

ok mudando a tática então, vamos pelo terminal, como não foi explicado pelo nosso amigo vou detalhar o procedimento para você:

1º Abra o DOS
2º Vá até a PASTA BIN da instalação do MYSQL
3º Execute o comando que o nosso amigo postou com algumas modificações

Original: mysqldump -u USUARIO -p NOME_DA_TABELA > NOME_DA_TABELA.sql
Alteração: mysqldump -u USUARIO -p NOME_DO_BANCO > C:\ARQUIVO.sql

Note que ao invés do nome da tabela temos o nome do banco e o arquivo ja contém o caminho. Fico no aguardo.

EduFranzoni

cristianovieira:
ok mudando a tática então, vamos pelo terminal, como não foi explicado pelo nosso amigo vou detalhar o procedimento para você:

1º Abra o DOS
2º Vá até a PASTA BIN da instalação do MYSQL
3º Execute o comando que o nosso amigo postou com algumas modificações

Original: mysqldump -u USUARIO -p NOME_DA_TABELA > NOME_DA_TABELA.sql
Alteração: mysqldump -u USUARIO -p NOME_DO_BANCO > C:\ARQUIVO.sql

Note que ao invés do nome da tabela temos o nome do banco e o arquivo ja contém o caminho. Fico no aguardo.

Cara, me desculpe a minha leiguisse. mas se não me engano flei que estou enfrentando pocas e boas nesse estagio. nas primeiras mensagens rs.

O banco de dados do servidor, é em um servidor linux, ou seja, terei que fazer a exportação através do terminal.

para o comando

mysqldump -u USUARIO -p NOME_DO_BANCO > C:\ARQUIVO.sql
funcionar, eu tenho que acessar o diretório do mysql correto? mas eu não sei onde está.

obs: servidor = linux e local = windows.

depois de gerar o arquivo, vou transferir via ftp. mas o problema está no na geração do arquivo. se eu abrir o terminal e digital o comando citado acima, já funciona?

cristianovieira

Bom o servidor linux tiver configurado o patch do mysql apenas execute o comando mysqldump porém no C:/arquivo.sql vc coloca /home/arquivo.sql se o mysqldump não funcionar você vai ter que procurar aonde ta o mysqldump, use o comando de pesquisa do linux, locate mysqldump para achar aonde ta.

EduFranzoni

cara, o arquivo foi gerado, já peguei.

agora preciso instalar e configurar o mysql novamente na minha maquina, para depois importar esse arquivo gerado.

o ideal é a versão do mysql ser a mesma? como descobrir a versão que está no servidor?

você está ajudando demaissss! valeuuu

cristianovieira

Bom ai que está… no linux o comando para descobrir a versão do mysql eu não sei se tem, mas você pode dar um select version() mas para executar esse comando você terá que utilizar o promt novamente e terá que conectar no banco.

EduFranzoni

conectei no banco e executei o SELECT version(); e funcionou. versão 5.0.77, sabe onde posso baixar? att

cristianovieira

mysql.com

EduFranzoni

cara, instalei! muito obrigado! preciso de ajuda agora para importar o arquivo gerado no servidor.

tem que ir pelo dos? e depois? como chego no diretorio necessário para efetuar o comando

mysql -u usuario -p banco_de_dados < arquivo.sql

ou eu consigo fazer isso pela propria linha de comando do mysql?

obrigado mais uma vez.

EduFranzoni

EduFranzoni:

cara, instalei! muito obrigado! preciso de ajuda agora para importar o arquivo gerado no servidor.

tem que ir pelo dos? e depois? como chego no diretorio necessário para efetuar o comando

mysql -u usuario -p banco_de_dados < arquivo.sql

ou eu consigo fazer isso pela propria linha de comando do mysql?

obrigado mais uma vez.

OBS: agora estou no windows!

romarcio

Dentro do diretório bin, onde o mysql foi instalado tem um arquivo: mysql. Pode executar ele que ele vai abrir o prompt.

EduFranzoni

se for o mysql.exe

ele abre e fecha rapidinho!

OPS: é necessário criar o banco de dados com o nome para importar?

romarcio

EduFranzoni:
se for o mysql.exe

ele abre e fecha rapidinho!

OPS: é necessário criar o banco de dados com o nome para importar?

tenta executar esse arquivo pelo console ao invés de dar 2 cliques nele.

EduFranzoni

como assim?

desculpa msmo, mas não sei rsrs. =S.

sou estágiario e iniciante. sem supervisor no estagio. abafa. rs. sorry

romarcio

EduFranzoni:
como assim?

desculpa msmo, mas não sei rsrs. =S.

sou estágiario e iniciante. sem supervisor no estagio. abafa. rs. sorry

Abre o prompt do DOS, vai até o diretório bin e executa o arquivo:
tipo: c:\mysql\bin>mysql

EduFranzoni

romarcio:
EduFranzoni:
como assim?

desculpa msmo, mas não sei rsrs. =S.

sou estágiario e iniciante. sem supervisor no estagio. abafa. rs. sorry

Abre o prompt do DOS, vai até o diretório bin e executa o arquivo:
tipo: c:\mysql\bin>mysql

Cara eu fiz de uma outra maneira, acredito que deu certo também. mas depois de efetuar o login na aplicação eu recebo o seguinte “Parameter index of 3 is out of range (1, 0)”

o que eu fiz foi. criar um database no mysql.

depois.

mudei o charset para utf8;

e usei o codigo

source d:/nome_db.sql.

depois disso rodou algumas query e a tabela de usuarios foi criada. nao sei as outras.

acontece esse erro apos efetuar o login. sabe porque pode estar acontecendo?

romarcio

Agora não sei :cry:

EduFranzoni

hehehe. obrigado mesmo assim. mesmo nao adiantando nada todo o trabalho que deu por enquanto já é um avanço.

o erro acontece aqui:

CallableStatement proc = conexao.conn.prepareCall("{call verificaLogin(?, ?, ?)}");
        proc.setString(1, nmUsuario);
        proc.setString(2, nmSenha);
        proc.registerOutParameter(3, Types.INTEGER);

Como nunca mexi com o mysql antes… não intendi nada desse método. sou acustumado ao select, insert, delete e update. o que significa esse call verificaLogin???

o erro acontece na linha:

proc.registerOutParameter(3, Types.INTEGER);

alguma luz?

EduFranzoni

Resolvido pessoal, como no banco de dados existia Procedures o comando de exportanção precisa ser um pouco diferente para também exportar os procedures.

para exportar os procedures o comando fica assim:

e por isso acontecia a exeção, pois os procedures não estavam no banco.

obrigado a todoss mais uma vez. valeu

Criado 29 de setembro de 2011
Ultima resposta 30 de set. de 2011
Respostas 29
Participantes 4