Seja bem vindo ao Fórum do JavaFree.org
Aqui você irá encontrar respostas para TUDO o que você precisa sobre java.
Deseja participar? Crie sua conta ou efetue seu login
Olá, aprendi a conectar o banco de dados com meu aplicativo java usando tanto no localhost como na propria rede, ou seja um servidor de banco para diversas estaçoes na mesma rede. Atualmente comecei a desenvolver um aplicativo para uma loja que possui 3 filiais e necessitam fazer o uso do mesmo banco de dados, a menos que as 3 cidades se encontrem na mesma rede daria certo fazer o tipo de conexão em rede mencionada, o problema é que as redes são diferentes e preciso criar este servidor para as 3 cidades acessarem, com algumas pesquisas me informei que existe formas e formas, mas não consegui encontrar exemplos de implementação para tal. Queria a ajuda de vocês, para me instruirem qual a melhor maneira para proceder com este servidor de dados para que as 3 filiais consigam se comunicar com o banco, que ficará em uma destas cidades. Desde ja grato. _________________Wagner Monteiro Azevedo Santos
4º Período de Ciência da Computação
Olá, aprendi a conectar o banco de dados com meu aplicativo java usando tanto no localhost como na propria rede, ou seja um servidor de banco para diversas estaçoes na mesma rede. Atualmente comecei a desenvolver um aplicativo para uma loja que possui 3 filiais e necessitam fazer o uso do mesmo banco de dados, a menos que as 3 cidades se encontrem na mesma rede daria certo fazer o tipo de conexão em rede mencionada, o problema é que as redes são diferentes e preciso criar este servidor para as 3 cidades acessarem, com algumas pesquisas me informei que existe formas e formas, mas não consegui encontrar exemplos de implementação para tal. Queria a ajuda de vocês, para me instruirem qual a melhor maneira para proceder com este servidor de dados para que as 3 filiais consigam se comunicar com o banco, que ficará em uma destas cidades. Desde ja grato.
o mais fácil é ter um servidor com um nome público (DNS) ou IP fixo...
Se isso não for possível, pode usar um serviço de DNS dinâmico com o NO-IP.org">http://www.no-ip.com/"">NO-IP.org (usamos no clube e funciona perfeitamente)
_________________ Nome real: Carlos F. Heuberger
Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!
Olá, aprendi a conectar o banco de dados com meu aplicativo java usando tanto no localhost como na propria rede, ou seja um servidor de banco para diversas estaçoes na mesma rede. Atualmente comecei a desenvolver um aplicativo para uma loja que possui 3 filiais e necessitam fazer o uso do mesmo banco de dados, a menos que as 3 cidades se encontrem na mesma rede daria certo fazer o tipo de conexão em rede mencionada, o problema é que as redes são diferentes e preciso criar este servidor para as 3 cidades acessarem, com algumas pesquisas me informei que existe formas e formas, mas não consegui encontrar exemplos de implementação para tal. Queria a ajuda de vocês, para me instruirem qual a melhor maneira para proceder com este servidor de dados para que as 3 filiais consigam se comunicar com o banco, que ficará em uma destas cidades. Desde ja grato.
o mais fácil é ter um servidor com um nome público (DNS) ou IP fixo...
Se isso não for possível, pode usar um serviço de DNS dinâmico com o NO-IP.org">http://www.no-ip.com/"">NO-IP.org (usamos no clube e funciona perfeitamente)
Ta me dizendo que se eu fizer isso aqui.
usando nessa linha:
um IP publico, ou seja um IP real, eu ja consigo conexão? estando numa rede diferente porém que enxergue meu ip publico? _________________Wagner Monteiro Azevedo Santos
4º Período de Ciência da Computação
um IP publico, ou seja um IP real, eu ja consigo conexão? estando numa rede diferente porém que enxergue meu ip publico?
"localhost" é o endereço de rede do seu banco de dados, "localhost" ou "127.0.0.1" quer dizer "esta máquina".
Qualquer outro endereço, seja de rede interna, seja DNS, ou seja IP da internet pode ser usado como endereço do banco de dados, você só precisa garantir que:
1: é um endereço válido
2: você consegue conectar à este endereço
3: a máquina destino aceita conexões da sua máquina _________________Mr. Yao Ming.
Olá, aprendi a conectar o banco de dados com meu aplicativo java usando tanto no localhost como na propria rede, ou seja um servidor de banco para diversas estaçoes na mesma rede. Atualmente comecei a desenvolver um aplicativo para uma loja que possui 3 filiais e necessitam fazer o uso do mesmo banco de dados, a menos que as 3 cidades se encontrem na mesma rede daria certo fazer o tipo de conexão em rede mencionada, o problema é que as redes são diferentes e preciso criar este servidor para as 3 cidades acessarem, com algumas pesquisas me informei que existe formas e formas, mas não consegui encontrar exemplos de implementação para tal. Queria a ajuda de vocês, para me instruirem qual a melhor maneira para proceder com este servidor de dados para que as 3 filiais consigam se comunicar com o banco, que ficará em uma destas cidades. Desde ja grato.
o mais fácil é ter um servidor com um nome público (DNS) ou IP fixo...
Se isso não for possível, pode usar um serviço de DNS dinâmico com o NO-IP.org">http://www.no-ip.com/"">NO-IP.org (usamos no clube e funciona perfeitamente)
Ta me dizendo que se eu fizer isso aqui.
usando nessa linha:
um IP publico, ou seja um IP real, eu ja consigo conexão? estando numa rede diferente porém que enxergue meu ip publico?
Quase, ainda tem que garantir que a porta não está sendo bloqueada
pela Firewall (servidor e cliente) e que esse usuário ("login") tenha os
direitos no banco para fazer a conexão da máquina em questão.
Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!
um IP publico, ou seja um IP real, eu ja consigo conexão? estando numa rede diferente porém que enxergue meu ip publico?
"localhost" é o endereço de rede do seu banco de dados, "localhost" ou "127.0.0.1" quer dizer "esta máquina".
Qualquer outro endereço, seja de rede interna, seja DNS, ou seja IP da internet pode ser usado como endereço do banco de dados, você só precisa garantir que:
1: é um endereço válido
2: você consegue conectar à este endereço
3: a máquina destino aceita conexões da sua máquina
Entendi, na verdade eu estava imaginando algo totalmente diferente e complexo, mas aparentemente é simples. vou tentar fazer isso usando um ip real e fazer as liberações pertinentes no banco xD Muito obrigado pela ajuda dando certo ou nao ainda volto aqui para avisar abraços _________________Wagner Monteiro Azevedo Santos
4º Período de Ciência da Computação
Olá, aprendi a conectar o banco de dados com meu aplicativo java usando tanto no localhost como na propria rede, ou seja um servidor de banco para diversas estaçoes na mesma rede. Atualmente comecei a desenvolver um aplicativo para uma loja que possui 3 filiais e necessitam fazer o uso do mesmo banco de dados, a menos que as 3 cidades se encontrem na mesma rede daria certo fazer o tipo de conexão em rede mencionada, o problema é que as redes são diferentes e preciso criar este servidor para as 3 cidades acessarem, com algumas pesquisas me informei que existe formas e formas, mas não consegui encontrar exemplos de implementação para tal. Queria a ajuda de vocês, para me instruirem qual a melhor maneira para proceder com este servidor de dados para que as 3 filiais consigam se comunicar com o banco, que ficará em uma destas cidades. Desde ja grato.
o mais fácil é ter um servidor com um nome público (DNS) ou IP fixo...
Se isso não for possível, pode usar um serviço de DNS dinâmico com o NO-IP.org">http://www.no-ip.com/"">NO-IP.org (usamos no clube e funciona perfeitamente)
Ta me dizendo que se eu fizer isso aqui.
usando nessa linha:
um IP publico, ou seja um IP real, eu ja consigo conexão? estando numa rede diferente porém que enxergue meu ip publico?
Quase, ainda tem que garantir que a porta não está sendo bloqueada
pela Firewall (servidor e cliente) e que esse usuário ("login") tenha os
direitos no banco para fazer a conexão da máquina em questão.
Entendi, na verdade eu estava imaginando algo totalmente diferente e complexo, mas aparentemente é simples. vou tentar fazer isso usando um ip real e fazer as liberações pertinentes no banco xD Muito obrigado pela ajuda dando certo ou nao ainda volto aqui para avisar abraços _________________Wagner Monteiro Azevedo Santos
4º Período de Ciência da Computação
[...]
Entendi, na verdade eu estava imaginando algo totalmente diferente e complexo, mas aparentemente é simples. vou tentar fazer isso usando um ip real e fazer as liberações pertinentes no banco xD Muito obrigado pela ajuda dando certo ou nao ainda volto aqui para avisar abraços
em princípio é fácil... mas os detalhes (Firewall, IP não público, ...) podem complicar... _________________ Nome real: Carlos F. Heuberger
Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!
Opa desculpem encomodar com mais uma duvida. então vamos ao exemplo mais pratico. Digamos que tenho entao um computador remoto com o banco de dados instalado. aí tenho meus aplicativos em outras cidades redes diferentes, porém coloquei um ip publico la no banco. Consigo pingar e ter uma certa comunicação com ele. digamos q o ip real seja 187.12.45.18.
devo coloca-lo como na minha url? assim?
caso precise algo mais na url o que seria? _________________Wagner Monteiro Azevedo Santos
4º Período de Ciência da Computação
Opa desculpem encomodar com mais uma duvida. então vamos ao exemplo mais pratico. Digamos que tenho entao um computador remoto com o banco de dados instalado. aí tenho meus aplicativos em outras cidades redes diferentes, porém coloquei um ip publico la no banco. Consigo pingar e ter uma certa comunicação com ele. digamos q o ip real seja 187.12.45.18.
devo coloca-lo como na minha url? assim?
caso precise algo mais na url o que seria?
é isso mesmo... assumindo que o banco é MySQL, que está usando a porta padrão e que é para usar o schema/catalog "test".
Se o banco estiver usando outra porta tem que fornecer a porta também, confera a documentação dele. Com MySQL deve ser algo como:para usar a porta 3399 (em vez da padrão 3306)
Existem vários parâmetros que podem ser fornecidos na URL, inclusive usuário e senha... só vendo a documentação... _________________ Nome real: Carlos F. Heuberger
Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!
Opa desculpem encomodar com mais uma duvida. então vamos ao exemplo mais pratico. Digamos que tenho entao um computador remoto com o banco de dados instalado. aí tenho meus aplicativos em outras cidades redes diferentes, porém coloquei um ip publico la no banco. Consigo pingar e ter uma certa comunicação com ele. digamos q o ip real seja 187.12.45.18.
devo coloca-lo como na minha url? assim?
caso precise algo mais na url o que seria?
é isso mesmo... assumindo que o banco é MySQL, que está usando a porta padrão e que é para usar o schema/catalog "test".
Se o banco estiver usando outra porta tem que fornecer a porta também, confera a documentação dele. Com MySQL deve ser algo como:para usar a porta 3399 (em vez da padrão 3306)
Existem vários parâmetros que podem ser fornecidos na URL, inclusive usuário e senha... só vendo a documentação...
Olá simu, mil perdoes encomodar novamente, fiz aki um teste pratico. configurei da seguinte forma
Ai na maquina ond ta o banco de dados ta conectando beleza, coloquei o IP 192.168.0.1 nela e tals, aí coloquei a maquina servidor em rede com uma outra maquina, ip = 192.168.0.2, gateway = 192.168.0.1 indicando meu gateway como o meu servidor, pingo do 192.168.0.1 no 192.168.0.2 e vice versa, compartilho arquivos tudo direitinho firewall desabilitado e no banco todas as permissoes consedidas. mas quando tento acessar o banco a partir da maquina 192.168.0.2 ocorre o seguinte erro, anexado em imagem abaixo. Em teoria está tudo certo pois, no banco garanti todas as permissoes, aqui private final String url = "jdbc:mysql://192.168.0.1:3306/test"; Eu ja declarei a localização do banco. na maquina 1 funciona, só a maquina 2 que nao chega e como disse acima está tudo se comunicando vice e versa. Alguma sugestao?
OBS: o erro diz q o host {nome do computador} não tem permissao para acessar x( mais não achei mais nenhuma restrição de permissao la no banco nao _________________Wagner Monteiro Azevedo Santos
4º Período de Ciência da Computação
Olá simu, mil perdoes encomodar novamente, fiz aki um teste pratico. configurei da seguinte forma
Ai na maquina ond ta o banco de dados ta conectando beleza, coloquei o IP 192.168.0.1 nela e tals, aí coloquei a maquina servidor em rede com uma outra maquina, ip = 192.168.0.2, gateway = 192.168.0.1 indicando meu gateway como o meu servidor, pingo do 192.168.0.1 no 192.168.0.2 e vice versa, compartilho arquivos tudo direitinho firewall desabilitado e no banco todas as permissoes consedidas. mas quando tento acessar o banco a partir da maquina 192.168.0.2 ocorre o seguinte erro, anexado em imagem abaixo. Em teoria está tudo certo pois, no banco garanti todas as permissoes, aqui private final String url = "jdbc:mysql://192.168.0.1:3306/test"; Eu ja declarei a localização do banco. na maquina 1 funciona, só a maquina 2 que nao chega e como disse acima está tudo se comunicando vice e versa. Alguma sugestao?
OBS: o erro diz q o host {nome do computador} não tem permissao para acessar x( mais não achei mais nenhuma restrição de permissao la no banco nao
A mensagem de erro está um pouco estranha, mesmo assim tem certeza que o usuário tem permissão de contatar o banco usando a outra máquina? Eventualmente liberado para conectar de qualquer máquina?
Tipo com o comando:
em últimos casos verifique o HOST na tabela MYSQL.USER para o usuário em questão. % significa qualquer máquina...
_________________ Nome real: Carlos F. Heuberger
Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!
Olá simu, mil perdoes encomodar novamente, fiz aki um teste pratico. configurei da seguinte forma
Ai na maquina ond ta o banco de dados ta conectando beleza, coloquei o IP 192.168.0.1 nela e tals, aí coloquei a maquina servidor em rede com uma outra maquina, ip = 192.168.0.2, gateway = 192.168.0.1 indicando meu gateway como o meu servidor, pingo do 192.168.0.1 no 192.168.0.2 e vice versa, compartilho arquivos tudo direitinho firewall desabilitado e no banco todas as permissoes consedidas. mas quando tento acessar o banco a partir da maquina 192.168.0.2 ocorre o seguinte erro, anexado em imagem abaixo. Em teoria está tudo certo pois, no banco garanti todas as permissoes, aqui private final String url = "jdbc:mysql://192.168.0.1:3306/test"; Eu ja declarei a localização do banco. na maquina 1 funciona, só a maquina 2 que nao chega e como disse acima está tudo se comunicando vice e versa. Alguma sugestao?
OBS: o erro diz q o host {nome do computador} não tem permissao para acessar x( mais não achei mais nenhuma restrição de permissao la no banco nao
A mensagem de erro está um pouco estranha, mesmo assim tem certeza que o usuário tem permissão de contatar o banco usando a outra máquina? Eventualmente liberado para conectar de qualquer máquina?
Tipo com o comando:
em últimos casos verifique o HOST na tabela MYSQL.USER para o usuário em questão. % significa qualquer máquina...
poderia exemplificar isso aki?
GRANT ALL ON test.* TO 'usuario'@'%' IDENTIFIED BY 'senha'; _________________Wagner Monteiro Azevedo Santos
4º Período de Ciência da Computação
GRANT ALL ON test.* TO 'usuario'@'%' IDENTIFIED BY 'senha';
como assim exemplificar?
é o tipo de comando que tem que executar no banco de dados para criar/liberar o usuário (usando o mysql.exe ou mysql ou outro programa para administrar o banco)... isso é administração do banco de dados, não tem muito a ver com Java (avançado ou não). Eu só sei que, como já escrevi, o usuário tem que ter os direitos para conectar da outra máquina, pelo que me lembre esses direitos não são dados automaticamente.
GRANT - comando para autorizar algum recurso/operação
ALL - autorizar tudo
ON test.* - para todos os objetos (tabelas, views, ...) do "test"
'usuario' - nome do usuário
@'%' - máquina de onde o usuário pode conectar
IDENTIFIED BY 'senha' - a senha para esse usuário
_________________ Nome real: Carlos F. Heuberger
Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!
GRANT ALL ON test.* TO 'usuario'@'%' IDENTIFIED BY 'senha';
como assim exemplificar?
é o tipo de comando que tem que executar no banco de dados para criar/liberar o usuário (usando o mysql.exe ou mysql ou outro programa para administrar o banco)... isso é administração do banco de dados, não tem muito a ver com Java (avançado ou não). Eu só sei que, como já escrevi, o usuário tem que ter os direitos para conectar da outra máquina, pelo que me lembre esses direitos não são dados automaticamente.
GRANT - comando para autorizar algum recurso/operação
ALL - autorizar tudo
ON test.* - para todos os objetos (tabelas, views, ...) do "test"
'usuario' - nome do usuário
@'%' - máquina de onde o usuário pode conectar
IDENTIFIED BY 'senha' - a senha para esse usuário
HAHA deu certo, testei na otra maquina aqui. rsrs eu tava apanhando mesmo era na permissao la dos usuários q podem se conectar no banco rsrs vlw simu, ajudou mtoo cara te devo essa abração precisar estamos aí _________________Wagner Monteiro Azevedo Santos
4º Período de Ciência da Computação
é, no fim acabam sendo mesmo os detalhes para tropeçar...
Ótimo saber que conseguiu! _________________ Nome real: Carlos F. Heuberger
Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!
Existe alguma configuração especial para conectar em um banco de dados remoto?
Normalmente quase todo banco é configurado para acesso remoto, mas, por segurança, alguns bancos por default não permitem esse acesso - o administrador tem que liberar o banco ou os usuários explicitamente.
É claro que a rede (firewall) também tem que permitir esse acesso. _________________Carlos H.
>
wagnermonteiroPosts:13
Olá, aprendi a conectar o banco de dados com meu aplicativo java usando tanto no localhost como na propria rede, ou seja um servidor de banco para diversas estaçoes na mesma rede. Atualmente comecei a desenvolver um aplicativo para uma loja que possui 3 filiais e necessitam fazer o uso do mesmo banco de dados, a menos que as 3 cidades se encontrem na mesma rede daria certo fazer o tipo de conexão em rede mencionada, o problema é que as redes são diferentes e preciso criar este servidor para as 3 cidades acessarem, com algumas pesquisas me informei que existe formas e formas, mas não consegui encontrar exemplos de implementação para tal. Queria a ajuda de vocês, para me instruirem qual a melhor maneira para proceder com este servidor de dados para que as 3 filiais consigam se comunicar com o banco, que ficará em uma destas cidades. Desde ja grato.
_________________Wagner Monteiro Azevedo Santos
4º Período de Ciência da Computação
simuPosts:9416