Java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

10 respostas
L

galera eu peguei um programa desktop de um colega…

eu criei um banco de dados com o msm nome e a tabela tbm…

mais quando eu tento inicia o programa da o seguinte erro…

[color=red]java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES[/color])

o banco dele tinha senha e o meu naum…eu tirei a senha dele…e num sei se tem haver ou naum…

vlw galera…

10 Respostas

drsmachado

Se retirou a senha, por que o erro diz que foi informada uma senha?

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
mauricioadl

isso eh um erro do mysql. use o mysqladmin e coloque uma senha que resolve.

marcospaulo.suporte

Amigo…
vc pode alterar a senha do usuário root com o comando:

mysqladmin -u root password 'nova_senha' mysqladmin flush-privileges

E para alterar uma senha ja existente:

mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('nova_senha') WHERE User='root';
mysql> FLUSH PRIVILEGES;
L

eu coloquei senha no me banco mais msm assim não esta indo...eu coloquei a senha no código...

import java.sql.*;

public class BD 
{
	public static Connection connection = null;
    public static Statement statement = null;
    public static ResultSet resultSet = null; 
    public static final String DRIVER   = "com.mysql.jdbc.Driver";
    public static final String URL      = "jdbc:mysql://localhost:3306/banco";

    public static boolean getConnection()
    {
       try
       {
   	      Class.forName(DRIVER);
          connection = DriverManager.getConnection(URL,"root","12345");
          statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
          System.out.println("Conectou");
          return true;
       }
       catch(ClassNotFoundException erro)
       {
       	  erro.printStackTrace();
          return false;
       }
       catch(SQLException erro)
       {
       	  erro.printStackTrace();
          return false;
       }
    }
    public static void close()
    {
	   closeResultSet();
	   closeStatement();
	   closeConnection();	
	}
    private static void closeConnection()
	{
	   try
	   {
	      connection.close();
	      System.out.println("Desconectou");
	   }
	   catch(SQLException erro)
	   {
	      erro.printStackTrace();
	   } 
	}  
    private static void closeStatement()
	{
	   try
	   {
	      statement.close();
	   }
	   catch(Exception e)
	   {
          e.printStackTrace();
       }
	}
    private static void closeResultSet()
	{
	   try
	   {
	      resultSet.close();
	   }
	   catch(Exception e)
	   {
          e.printStackTrace();
	   }
	}
    public static void setResultSet(String sql)
    {
	   try
	   {
		  resultSet = statement.executeQuery(sql);
	   }
       catch(SQLException erro)
       {
          erro.printStackTrace();
       } 
    } 
    public static int runSQL(String sql)
    {
	   int quant = 0; 
	   try
	   {
		  quant = statement.executeUpdate(sql);
	   }
	   catch(SQLException erro)
	   {
	   	  erro.printStackTrace();
	   } 
       return quant;
	}  
}

e quando eu executo da o msm erro...

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

drsmachado

Pergunta, o usuário do banco é root e a senha 12345?

L

isso eu coloquei a senha 12345…

marcospaulo.suporte

Tente isso…

import java.sql.*;
import javax.swing.*;

public class BD
{
    final private String driver = "com.mysql.jdbc.Driver";
    final private String url = "jdbc:mysql://localhost/banco";
    final private String usuario = "root";
    final private String senha = "12345";
    
    //Connection - objeto principal para fazer a conexao
    private Connection conexao;
    // tipo statement, abre caminho até o banco de dados
    public Statement statement; 
    // objeto que armazena os resultados dos comandos do sql. sendo publica. todos objetos poderao usar
    public ResultSet resultset;
    
    public boolean conecta() // metodo boleano para que de um retorno em caso de erro.
            {
                boolean result = true;
                try
                {
                    Class.forName(driver);//Tenta carregar o 'driver' que é a variavel de cima
                    conexao = DriverManager.getConnection(url,usuario,senha);
                    //JOptionPane.showMessageDialog(null,"Conectado ao banco");
                }
                catch(ClassNotFoundException Driver)
                        {
                            JOptionPane.showMessageDialog(null,"Driver não localizado"+Driver);
                            result = false; // se der errado nao carrega o driver
                        }
                catch(SQLException Fonte)
                {
                    JOptionPane.showMessageDialog(null,"Erro Conexão com o banco"+Fonte);
                }
                return result; // volta para o inicio da operação
            }
    public void desconecta()
    {
        boolean result = true;
        try
        {
            conexao.close();//fecha a conexao com o banco
            JOptionPane.showMessageDialog(null,"Conexão com o Banco Fechada");
        }
        catch(SQLException fecha)
        {
            JOptionPane.showMessageDialog(null,"Não foi possível fechar o banco"+fecha);
            result = false;
        }
    }
    // VAI SER USADO VARIOS QUERIES, E COM NAO SABEMOS QUE VAMOS DAR SELECT, INSERT E UPDATE
    // CRIAMOS UMA VARIAVEL SQL DENTRO 
    public void executeSQL(String sql)
    {
        try
        {
            // abre o caminho, pega a conexao e cria a ligação com o banco.
            statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);; //significa que pode navegar por ambos os lados do banco
            // lugar onde fica armazenado os resultados, ele pega a o statment e ira executar por meio do 'EXECUTEQUERY'
            resultset = statement.executeQuery(sql);
        }
        catch(SQLException sqlex)
        {
            JOptionPane.showMessageDialog(null,"Não foi possivel executar o comando"+sqlex+" o sql passado foi "+sql);
        }
    }
}
L

o mesmo erro…

marcospaulo.suporte

Amigo,
é um banco de teste?
cara… manda o bd pra eu poder te ajudar…

o problema não é o java e sim o mysql…
Que sistema vc usa?

L

o meu mysql 6.0

Criado 26 de setembro de 2011
Ultima resposta 27 de set. de 2011
Respostas 10
Participantes 4