Pessoal boa noite,
Estou hospedando um projeto em um site chamado KingHost, nele tenho uma aplicação JAVA com hibernate e MySQL, o problema é que quando tento conectar minha a aplicação no banco de dados recebo a seguinte exception:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Negociação de acesso falhou
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4098)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4030)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:951)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1717)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1276)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2389)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2422)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2207)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:797)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Teste.getConnection(Teste.java:63)
at Teste.main(Teste.java:15)
Fiz um programinha teste em JDBC, e ao conectar recebo o mesmo problema, sei que tem haver com permissão ja que localmente consegui simular o mesmo problema e depois que dei “grant all privileges” para o usuario o problema foi resolvido, bom conversei com o pessoal de suporte do site e a resposta que tive é que os grants são limitados mesmo, posso criar tabelas, droppar, select, insert, update e delete, mas não tenho todos os privilégios necessarios para uma conexão JDBC normal, ai vão as perguntas, alguem ja passou por algo parecido? Ou mesmo sabe como limitar o acesso do JDBC?
Segue trecho do código JDBC bem simples, somente para teste mesmo:
private static Connection getConnection(){
String url = "jdbc:mysql://mysql.dxvendas.com.br/dxvendas";
Connection connection =null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(url, "dxvendas", "*************");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
Obrigado a todos,
Cássio