Java.net.SocketException: Network is unreachable

3 respostas
T

Escrevi um pequeno código para testar conexão java (usando localhost) com o bd Mysql. Uso o Slackware 9.1; O servidor do mysql roda normalmente, o banco de dados esta nomeado como test.

O código é o seguinte:

import java.sql.*;

public class Mysql{

public static void main (String args[]){

Connection conn = null;

String driver = com.mysql.jdbc.Driver;

String url = jdbc:mysql://localhost/test?user=root&password=root”;

Statement consulta = null;

ResultSet resposta = null;
try{
		Class.forName(driver).newInstance();
	} catch (Exception ex) {
		System.out.println("Erro ao registrar a classe: " + ex.getMessage());
	}

	try{
		conn = DriverManager.getConnection(url);
		consulta = conn.createStatement();
		resposta = consulta.executeQuery("SELECT * FROM tab_tab");
		resposta.close();
	} catch (Exception ex){
		System.out.println("Erro ao abrir conexao: " + ex.getMessage());
	}
}

}

E estou recebendo o seguinte erro:

Erro ao abrir conexao: Unable to connect to any hosts due to exception: java.net.SocketException: Network is unreachable

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: Network is unreachable

STACKTRACE:

java.net.SocketException: Network is unreachable

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)

at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)

at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)

at java.net.Socket.connect(Socket.java:452)

at java.net.Socket.connect(Socket.java:402)

at java.net.Socket.<init>(Socket.java:309)

at java.net.Socket.<init>(Socket.java:124)

at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:124)

at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:225)

at com.mysql.jdbc.Connection.createNewIO(Connection.java:1783)

at com.mysql.jdbc.Connection.<init>(Connection.java:450)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)

at java.sql.DriverManager.getConnection(DriverManager.java:512)

at java.sql.DriverManager.getConnection(DriverManager.java:193)

at Mysql.main(Mysql.java:18)

** END NESTED EXCEPTION **

Se alguém puder dar uma força… agradeço…

3 Respostas

B
String url = &quot;jdbc&#58;mysql&#58;//localhost/test?user=root&password=root&quot;;

tem certeza que é assim que se acessa?
a mensagem diz que não é possivel acessar localhost, talvez esteja faltando a porta.
por exemplo, aqui uso

jdbc&#58;oracle&#58;thin&#58;@localhost&#58;1521&#58;oracle

nunca vi essa de passar o usuario e a senha por querystring nao!!

T

“bejeto”:
String url = &quot;jdbc&#58;mysql&#58;//localhost/test?user=root&password=root&quot;;

tem certeza que é assim que se acessa?
a mensagem diz que não é possivel acessar localhost, talvez esteja faltando a porta.
por exemplo, aqui uso

nunca vi essa de passar o usuario e a senha por querystring nao!!

A documentação do mysql mostra q deve ser feito assim. Quando eu usava o kurumin dava certo. So deu pau agora q to usando o slack…
vou tentar incluir o numero da porta, se não der certo, vou tentar da sua maneira…
e quanto ao usuario e senha? quando é q informa??

T

Já resolvi… o problema nao era no código nem no mysql… era o sistema. Faltava alguns pacotes de app’s de rede… agora ta tudo blz…
E alterei a chamada DriverManager.getConnection…

Agora uso:

String url = jdbc:mysql://localhost/test;

String usuario = root;

String senha= root;

DriverManager.getConnection(url,usuario,senha);
Criado 11 de julho de 2005
Ultima resposta 12 de jul. de 2005
Respostas 3
Participantes 2