[RESOLVIDO] Acessar MySql em rede

Olá pessoal!

Preciso achar a solução para o seguinte problema:

Tenho um banco de dados em um computador, o qual está numa rede.
Um aplicativo Java precisa acessar esse banco, de outro micro da rede.

O meu problema é que não consigo acessar o banco de outro micro.
Quando acesso no próprio (localhost), consigo normalmente, usando o seguinte metodo:

connection = DriverManager.getConnection("jdbc:mysql://localhost/meubancodados", USERNAME, PASSWORD);

Agradeço muito a quem puder ajudar.

Tentou acessar o outro pelo IP?

Verifique tbm se nas configurações do seu DB está ok para receber conexões pela rede, em qual endereço está escutando, etc…

aew!!!
tenta

   1. connection = DriverManager.getConnection("jdbc:mysql://ipInternoDoServer/meubancodados", USERNAME, PASSWORD);  

tipo

[code]   1. connection = DriverManager.getConnection("jdbc:mysql://192.168.0.2/meubancodados", USERNAME, PASSWORD);  

ai se der erro… copie o erro e cole aqui!!!

Ou em “localhost” coloca o nome do PC da rede q vc quer acessar e a porta.

Ex “SERVIDOR:8080”

Primeiramente, obrigado pelas ajudas impostadas.
Certamente serão muito úteis.

Dúvida de principiante:

Como eu sei o IP da rede do computador que contém o Banco de Dados?
Eu abri p cmd do Windows e digitei “ipconfig”, mas foram informados vários dados.

1 - digite ipconfig e verifique no título endereço de ip

2 - no endereço, digite no lugar do localhost o endereco de ip + porta: 192.168.0.1:3306 por exemplo

3 - desbloqueia o firewall do windows que tem o banco

U:\>ipconfig

Configuração de IP do Windows


Adaptador Ethernet Conexão local:

        Sufixo DNS específico de conexão  . : aaaa.bbb
        Endereço IP . . . . . . . . . . . . : 192.196.0.3
        Máscara de sub-rede . . . . . . . . : 255.255.254.0
        Gateway padrão. . . . . . . . . . . : 192.196.0.1

Veja o que tem "Adaptador Ethernet Conexão Local" ou coisa parecida.

No xp vai aparecer : endereço id
no vista : endereço ipv4

ta ai!

Ok, descobri o IP: 10.8.18.106
A porta é a seguinte: 3306

Então fica assim:

"jdbc:mysql://10.8.18.106:3306/meubancodados"

Mas deu a seguinte exception:

java.sql.SQLException: null,  message from server: "Host '10.8.18.132' is not allowed to connect to this MySQL server"
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1095)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2031)
        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
        at pacotes.jdbc.BancoDados.main(BancoDados.java:39)

Desconfio que tenho que alterar alguma configuração do MySql para trabalhar em rede. (?!?)

No arquivo de configuração do MySQL (acho q é mysqld.conf) vc precisa liberar acesso à maquinas externas.
Vc já conseguiu chegar no servidor, precisa apenas de permissão agora :slight_smile:

No diretório “mysql\bin” tem um arquivo chamado “my.cnf”. Seria esse?

Dentro desse arquivo consta: skip-locking
Isso tem algo a ver?

Hum…
da ultima vez que eu fiz isso…
eu tbm… nao tinha permitido acesso por outras maquinas…
tem outro geitos claro!!
mais eu tive que reinstalar o mysql server…
na instalação tem um check box … para permitir acesso de outras maquinas…

Obrigado a todos pelas dicas, mas infelizmente não consegui resolver.

Alterei a configuração no arquivo my.cnf, mas o SO começou a emitir mensagens de alerta, e não era mais possível acessar o MySql pelo phpMyAdmin.

Reinstalei o Xampp, mas não há nenhuma opção onde seja possível informar que será utilizado em rede.

Se alguém souber algo que possa me ajudar, agradeço muito.

O que não estou conseguindo é configurar o MySql para PERMITIR acessos ao Banco de Dados através de outros computadores da rede.

Alguém sabe como?

Ufa!

Depois de 24 horas, finalmente consegui.

Observação: no link informado pelo thingol, o passo-a-passo informa um arquivo que deve ser configurado. Mas só hoje descobri que esse arquivo é utilizado quando o SO é Unix, sendo que para Windows o arquivo é outro. Para minha infelicidade, o diretório do MySql possui um arquivo com nome igual àquele do Unix. E aí ocorria o problema. Eu estava alterando o arquivo errado.

Para aqueles que venham a ter o mesmo problema, lá vai a solução:

Eu estou utilizando o seguinte:

  • Apache;
  • MySQL 5.0.67;
  • phpMyAdmin;
  • Xampp.

-> Pare o MySql;
-> Entre no diretório do Windows, que no meu caso é: C:\Windows;
-> Abra o arquivo my.ini;
-> Insira (ou descomente, caso ela já exista) a seguinte linha, dentro do grupo [mysqld]: bind-address=SEU-SERVER-IP; (onde SEU-SERVER-IP é o IP do computador onde está o MySql.)
-> Se tiver a linha skip-networking, comente-a (assim: #skip-networking) ou delete-a;
-> Salve e feche o arquivo;
-> Restaure (start) o MySql.

-> Pronto!!!

Obrigado a todos pelas dicas/informações passadas.

1 curtida