2017-01-26 16 views
0

私は、Googleとこのウェブサイトで探していたMySQLに接続する際に問題がありましたが、問題の解決策はありますが、自分のコードでは機能しません。MySQLとの接続エラー。アクセス不可

public static String host = SQL.getInstance().getConfig().getString("Config.SQLhost"); 
public static String port = SQL.getInstance().getConfig().getString("Config.SQLport"); 
public static String database = SQL.getInstance().getConfig().getString("Config.SQLdatabase"); 
public static String username = SQL.getInstance().getConfig().getString("Config.SQLusername"); 
public static String password = SQL.getInstance().getConfig().getString("Config.SQLpassword"); 
public static Connection con; 

public static void connect(){ 
    if(!isConnected()){ 
     try { 

      con = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database, username, password); 
      System.out.println("[SQL] Connected with MySQL."); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
public static boolean isConnected(){ 
    return (con == null ? false : true); 
} 

そして、ここでは、エラーレポートです:

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

が[21時04分26秒WARN]:com.mysql.jdbc.SQLError.createSQLException(SQLError.java:959でコードがい ) [21:04:26 WARN]:com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3870) [21:04:26 WARN]:com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO .java:3806) [21:04:26 WARN]:com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:871) [21:04:26 WARN]:com.mysql.jdbc。 MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1686) [21:04:26 WARN]:com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1207) [21:04:26警告]:at com。 (ConnectionImpl.java:2285) [21:04:26 WARN]:com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2285) [21:04:26警告] :com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2084) [21:04:26 WARN]:com.mysql.jdbc.ConnectionImpl。(ConnectionImpl.java:795) [21:04: 26 WARN]:com.mysql.jdbc.JDBC4Connection。(JDBC4Connection.java:44) [21:04:26 WARN]:sun.reflect.NativeConstructorAccessorImpl.newInstance0(ネイティブメソッド) [21:04:26 WARN] ]:at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unkn自分のソース) [21:04:26 WARN]:sun.reflect.DelegatingConstructorAccessorImpl.newInstance(不明なソース) [21:04:26 WARN]:java.lang.reflect.Constructor.newInstance(不明なソース) [21:04:26 WARN]:com.mysql.jdbc.Util.handleNewInstance(Util.java:404) [21:04:26 WARN]:com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java :400) [21:04:26 WARN]:com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:327) [21:04:26 WARN]:java.sql.DriverManager.getConnection(不明ソース) [21:04:26 WARN]:java.sql.DriverManager.getConnection at(0120)ご挨拶、カーベ。

+0

外部の画像ではなくテキストとしてエラーを投稿してください – pedrorijo91

+0

あなたのデータベースには 'localhost'という名前のユーザーがいますか?ユーザーが存在しないか、十分な権限がないか、パスワードが正しくないようです。それを確認してください。 – ujulu

答えて

0

'localhost' @ 'localhost'でログインしようとしているstacktraceによると、

[email protected] 

さらに、あなたは、プライベートなど、あなたの変数を宣言する必要があります:以下の更新されたコードで

private static String username = SQL.getInstance().getConfig().getString("Config.SQLusername"); 
+0

助けてくれてありがとうございますが、それはそれがどのように表示されているのか、データはlocalhostではなく、localhostです。 – Curbe

0

見て、私はこれがあるべきだと思います。

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

public class MySqlConnection { 
    // Replace credentials with correct values 
    private static String host = "localhost"; 
    private static String port = "3306"; 
    private static String database = "test"; 
    private static String username = "root"; 
    private static String password = "root"; 
    private static Connection con; 

    public static void main(String[] args) throws ClassNotFoundException{ 
     if(!isConnected()){ 
      try { 
       Class.forName("com.mysql.jdbc.Driver"); 
       con = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database, username, password); 
       System.out.println("[SQL] Connected with MySQL."); 
      } catch (SQLException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
    public static boolean isConnected(){ 
     return (con == null ? false : true); 
    } 
} 

mysql-connector-java-5.0.8-bin.jarをプロジェクトに追加することを忘れないでください。また、ローカル変数はprivateと宣言する必要があります。

+0

ありがとう、私はそれを試みたが、うまくいきません、私はゆっくりと希望を失っています – Curbe

+0

@カーブ私はそれを私の自己を試してみました。それは私のために働いた。資格が正しいことを確認し、jarを追加してください。また、デバッグして、値が正しくロードされ、DBスキーマが存在することを確認してください。 – HPatel

+0

メイクするのは簡単です。完全なコードmain()メソッドを使ってみました。 @Curbe – HPatel

関連する問題