Erro ao conectar ao servidor mysql [RESOLVIDO]

9 respostas
D

Olá galera, fui colocar um programa em rede… tenho um arquivo de configuração onde insiro o endereço do servidor e os dados do banco de dados
porém quando executo o programa que ele vai buscar algum dado do banco do servidor dá o seguinte erro:

o programa quando executado direto do servidor não dá nenhum problema faz todas as consultas…

ja tentei fechar e abrir a consulta do hibernate todas as vezes que for buscar algum dado do BD. não deu certo.

9 Respostas

J

Amigo,

se puder colar aqui o stacktrace completo, ajudaria muito mais.

Mas, como você diz que o problema ocorre em host remoto, pode ser:

  1. IP do servidor informado não confere
  2. Questões de segurança (porta do Mysql, por exemplo)
  3. O usuário pelo qual tentou-se o acesso não ter permissão de acesso remoto, apenas local

Abraços.

D

Olá o erro é o seguinte:

org.hibernate.exception.SQLGrammarException: Cannot open connection at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449) at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167) at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161) at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1596) at org.hibernate.loader.Loader.doQuery(Loader.java:717) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270) at org.hibernate.loader.Loader.doList(Loader.java:2294) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2172) at org.hibernate.loader.Loader.list(Loader.java:2167) at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:119) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1706) at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:347) at pronewextintor.persist.GenericDAO.getAllUsers(GenericDAO.java:428) at pronewextintor.JIFConexao.loginOfSystem(JIFConexao.java:268) at pronewextintor.JIFConexao.access$300(JIFConexao.java:28) at pronewextintor.JIFConexao$OpenJIFTask.doInBackground(JIFConexao.java:235) at org.jdesktop.swingworker.SwingWorker$1.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at org.jdesktop.swingworker.SwingWorker.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown database 'bd' at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:885) at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3421) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1247) at com.mysql.jdbc.Connection.createNewIO(Connection.java:2748) at com.mysql.jdbc.Connection.<init>(Connection.java:1553) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:154) at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446) ... 22 more

a configuração do hibernate esta da seguinte forma:

<property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.url"> jdbc:mysql://localhost:3306/bd </property> <property name="connection.username">root</property> <property name="connection.password">lpc123</property> <property name="connection.driver_class"> com.mysql.jdbc.Driver </property> <property name="hibernate.hbm2ddl.auto">insert</property> <property name="hibernate.connection.autocommit">true</property> <property name="hibernate.connection.release_mode">auto</property> <property name="hibernate.show_sql">true</property>

eu gero um arquivo que faz a busca do BD
o código desse arquivo é o seguinte:

public void defaultProperties() { properties.setProperty("bd.user", "root"); properties.setProperty("bd.pass", "lpc123"); properties.setProperty("bd.ipserver", "10.1.1.2");//IP servidor properties.setProperty("bd.name", "bd"); properties.setProperty("bd.url", "jdbc:mysql://localhost:3306/bd"); storeProperties(); }

J

Amigo, se sua URL diz
jdbc:mysql://localhost:3306/bd
Nunca vais conseguir acessar um servidor remoto. No lugar do localhost, deve colocar o número ip ou host do servidor onde está o serviço do Mysql.

A mensagem de erro só não foi outra porque, por coincidência, você tem uma instância do Mysql na máquina local, só que sem a base “bd”.

D

entao deveria ficar assim?

J

Bem, não entendi a finalidade desse seu método “defaultProperties()”, mas parece que deve alterar lá também.
Agora a mudança no hibernate.cfg.xml deve existir com certeza absoluta.

D

bem eu coloquei em ambos o endereço absoluto

esta com o mesmo problema porem não sei se esta correto!

J

Não… nunca se faz isso ai. Nunca mesmo (não para MySql)… era apenas trocar o “localhost” pelo ip do servidor mesmo.

D

Agora sim deu certo coloquei somente o IP.

muito obrigado cara!!!

J

Ok. Só não esqueca de por o [RESOLVIDO] no título do tópico, ok?

[]s

Criado 8 de agosto de 2011
Ultima resposta 8 de ago. de 2011
Respostas 9
Participantes 2