Ajuda jdbc!

12 respostas
O

Boa tarde galéra!
Preciso de ajuda ja estou ficando louco e não sei qual motivo não funciona!
Aluguei um Host com suporte java ,BD mysql e tomcat!

aqui vai um exemplo que eu fiz, a classe e o erro!
Criei um login para o banco de dados ex:
login: bancoteste
senha: 102030

DataBase: cadastro

aqui terminei o meu Banco!
agora eu fiz essas 2 classes, 1 para conectar ao banco e outra para testar a conexão!

[color=green]1º Class[/color]
ConectionFactory

package br.com.caelum.jdbc;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;
public class ConnectionFactory {

public Connection getConnection(){

System.out.println(Conectando ao Banco);

try{

return DriverManager.getConnection("[color=blue]jdbc:mysql://localhost/cadastro[/color]", [color=red]bancoteste, 102030[/color]);

}catch(SQLException e){

throw new RuntimeException(e);

}

}

}

2º Class
TestaConexao
package br.com.caelum.jdbc.teste;

import java.sql.Connection;
import java.sql.SQLException;

import br.com.caelum.jdbc.ConnectionFactory;

public class TestaConexao {

public static void main(String[] args) throws SQLException {

Connection connection = new ConnectionFactory().getConnection();

connection.close();

}

}

Erro ocorrido!

<blockquote>Exception in thread main java.lang.RuntimeException: java.sql.SQLException: Access denied for user bancoteste’@‘localhost (using password: YES)

at br.com.caelum.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:13)

at br.com.caelum.jdbc.teste.TestaConexao.main(TestaConexao.java:10)

Caused by: java.sql.SQLException: Access denied for user bancoteste’@‘localhost (using password: YES)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:911)

at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3953)

at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1276)

at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2048)

at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:723)

at com.mysql.jdbc.JDBC4Connection.(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 br.com.caelum.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:11) 1 more

</blockquote>

o login a senha e o banco estão certos mais infelizmente não vai!
não sei porque não conecta alguem pode me dar um help?
desde ja agradeço

12 Respostas

remixlara

O problema pode está na sua senha. Verifique ai, lembrando que a senha do seu gerenciador de banco de dados nem sempre é a mesma do mysql.

por exemplo, se você estiver usando phpmyadmin a senha de acesso ao phpmyadmin necessariamente não é a mesma do mysql.

Tenta coloca a senha em branco. e vê se resolve.

Qualquer coisa reinstale e configure novamente o mysql…

O

é o phpmyadmin sim só que a senha foi eu que criei esse é o problema =/!
ja coloquei em branco também não funcionou!
por isso to ficando louco sem saber o que é!

remixlara

O usuário é esse mesmo? bancoteste? como você pagou a hospedagem geralmente é o usuário de acesso da hospedagem ou então você define um.

e você ainda tem que definir as permissões desse usuário e atribuir ao banco de dados…

O

não é esse, foi só um exemplo vou te mostrar eu ja criei o banco e atribui a conta do mysql q eu mesmo criei!

criei outro agora e coloquei a senha 1 só para ser de facil acésso! e deu o mesmo erro!

cpanel com o banco e a conta do banco

banco

Factory

Erro

HELLPPPPP

O

O endereço é localhost mesmo?
Pelo que eu sei quando vc poe sua aplicação na web, e o banco na web tbm o proprio site la te da o endereço do banco.
Manda uma msg pra eles pedindo o endereço certo do banco, pq eu acho que nao é localhost.

Se não for isso, eu tentei !
Abraços

LPJava

bem, o endereco concerteza deve está errado.

o meu é assim:

DriverManager.getConnection("jdbc:mysql://www.camilolopes.com.br/nomedobanco", "camilo", "temgostodejava");

Lembre-se configuracoes de producao sao diferentes de teste. E melhor use pool de conexao. Nao esqueça tb de colocar o driver do Bd na pasta lib do tomcat.

flw! qualquer coisa so gritar :smiley:

O

infelizmente ñ deu também!

return DriverManager.getConnection(“jdbc:mysql://www.alexandrenerdido.com.br/alexandr_cad” , “alexandr_teste” , “1”);

a unica coisa que mudou no erro é que foi adicionado um IP!
Caused by: java.sql.SQLException: Access denied for user ‘teste’@‘189.78.126.1’ (using password: YES)

ta osso =(

LPJava

verifique se vc deu permissao ao usuario alexandr_teste para acessar o BD.

A melhor forma de vc testar isso ai eh conectar direto do mysql sem usar o phpmyadmin. Ou seja, está usando o Mysql query Browser? se tiver poe lá as configuracoes do bd, tira o localhost e manda bala. Se conectar por lá, ai a historia eh outra. E outro detalhe acredito que o servidor em producao seja linux, cuidado com o case-sentitive, principalmente com o nome do BD.

Se o path tiver correto e o usuario com permissao nao tem como nao dar erro. Ja que a msg eh bem direta Access denied

flw!

O

aff ñ to conseguindo tem com me mandar seu msn eu te passo o acésso e vc vê para eu?
add ai [email removido]

LPJava

manda via MP, pois nao uso msn nao.

O

mandei!

henrriquetec

Ola,

vamos por parte, tentaremos resolver por teste

  1. verifique se esta chegando no host (ping)

  2. verifique se o servidor esta aceitando conexoes(qual porta?) porta default do mysql 3306

3)Voce pode ir no console do linux ou no prompt do Windows e digitar o seguinte comando

mysql -h (ip_host) -u usuario -p

vai retorna pra digitar senha.

se conectar digite (show databases) pra listar os databases do servidor

4)caso não conecte e retorne erro de permissão execute o passo abaixo:

mysql> grant all privileges on DATABASE.* to usuario@seu_ip identified by “senha”;

Criado 23 de maio de 2010
Ultima resposta 13 de nov. de 2010
Respostas 12
Participantes 5