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.
se puder colar aqui o stacktrace completo, ajudaria muito mais.
Mas, como você diz que o problema ocorre em host remoto, pode ser:
IP do servidor informado não confere
Questões de segurança (porta do Mysql, por exemplo)
O usuário pelo qual tentou-se o acesso não ter permissão de acesso remoto, apenas local
Abraços.
D
dhyan
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:
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
dhyan
entao deveria ficar assim?
J
jyoshiriro
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
dhyan
bem eu coloquei em ambos o endereço absoluto
esta com o mesmo problema porem não sei se esta correto!
J
jyoshiriro
Não… nunca se faz isso ai. Nunca mesmo (não para MySql)… era apenas trocar o “localhost” pelo ip do servidor mesmo.
D
dhyan
Agora sim deu certo coloquei somente o IP.
muito obrigado cara!!!
J
jyoshiriro
Ok. Só não esqueca de por o [RESOLVIDO] no título do tópico, ok?