Página Inicial do Fórum > Java Avançado

Conexão Com Banco de Dados Remoto



Criar novo tópico   Responder tópico
  1. Comment Arrow

    Publicado em: 16/04/2012 15:02:39

    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




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 17/04/2012 09:44:14

    wagnermonteiro
    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!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.


  1. Comment Arrow

    Publicado em: 16/04/2012 15:02:39

    simu
    wagnermonteiro
    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




  1. yao ming
    Posts:66


    Comment Arrow

    Publicado em: 17/04/2012 14:48:11

    wagnermonteiro

    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?



    "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.




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 17/04/2012 09:44:14

    wagnermonteiro
    simu
    wagnermonteiro
    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.

    Tópico parecido: Como">http://javafree.uol.com.br/topic-874031-Como-acessar-o-banco-MySql-atraves-de-outro-pc-da-redeOK.html"">Como acessar o banco MySql através de outro pc da rede?[OK]
    _________________
      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!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.


  1. Comment Arrow

    Publicado em: 16/04/2012 15:02:39

    yao ming
    wagnermonteiro

    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?



    "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


  1. Comment Arrow

    Publicado em: 16/04/2012 15:02:39

    simu
    wagnermonteiro
    simu
    wagnermonteiro
    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.

    Tópico parecido: Como">http://javafree.uol.com.br/topic-874031-Como-acessar-o-banco-MySql-atraves-de-outro-pc-da-redeOK.html"">Como acessar o banco MySql através de outro pc da rede?[OK]



    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




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 17/04/2012 09:44:14

    wagnermonteiro

    [...]
    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!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.


  1. Comment Arrow

    Publicado em: 16/04/2012 15:02:39

    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




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 17/04/2012 09:44:14

    wagnermonteiro
    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!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.


  1. Comment Arrow

    Publicado em: 16/04/2012 15:02:39

    simu
    wagnermonteiro
    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




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 17/04/2012 09:44:14

    wagnermonteiro
    simu

    [...]



    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!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.


  1. Comment Arrow

    Publicado em: 16/04/2012 15:02:39

    simu
    wagnermonteiro
    simu

    [...]



    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




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 17/04/2012 09:44:14

    wagnermonteiro
    simu

    [...]



    poderia exemplificar isso aki?

    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!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.


  1. Comment Arrow

    Publicado em: 16/04/2012 15:02:39

    simu
    wagnermonteiro
    simu

    [...]



    poderia exemplificar isso aki?

    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




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 17/04/2012 09:44:14

    é, 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!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. thiagovpalmeir
    Posts:1161


    Comment Arrow

    Publicado em: 03/02/2013 18:31:34

    Existe alguma configuração especial para conectar em um banco de dados remoto?




  1. cfh
    Posts:820


    Comment Arrow

    Publicado em: 04/02/2013 05:54:35

    thiagovpalmeir
    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.
    >




  1. Relacionados





Novo tópico   Responder tópico     Índice do forum -> Java Avançado