2016-12-03 13 views
0

私のマシン上で実行されているmysql dbとの接続を確立しようとしています。ここ はコードです -getConnectionは、ローカルmysql dbとの接続時にJDBCに接続されていません

static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; 
static final String DB_URL = "jdbc:mysql://localhost:3306/SecureSharedStore"; 

// Database credentials 
static final String USER = "root"; 
static final String PASS = "password"; 

public static void main(String[] args) { 
Connection conn = null; 
Statement stmt = null; 
try{ 
    //STEP 2: Register JDBC driver 
    Class.forName("com.mysql.jdbc.Driver"); 

    //STEP 3: Open a connection 
    System.out.println("Connecting to database..."); 
    conn = DriverManager.getConnection(DB_URL, USER, PASS); 
} catch(SQLException se){ 
    //Handle errors for JDBC 
    se.printStackTrace(); 
} 

私はローカルDBに接続するために期待し、これを実行しますが、それは次のように言って、エラーを与えた場合 - データベースへの接続

java.sql.SQLException: Access denied for user 'root'@'10.0.2.15' (using password: YES) 
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964) 
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3970) 
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3906) 
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:873) 
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1710) 
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1226) 
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2253) 
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2284) 
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2083) 
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:806) 
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) 
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410) 
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:328) 
at java.sql.DriverManager.getConnection(DriverManager.java:664) 
at java.sql.DriverManager.getConnection(DriverManager.java:247) 
at JDBCExample.main(JDBCExample.java:22) 

私はそれがあまりにも

を127.0.0.1ではないことは、あなたが私を助けてくださいことを、「localhost」のが、それはIPアドレスを取っている@「ルート」に接続するために期待する最初の行を参照してください私は何が欠けている。かなりjdbcに新しく、Linuxマシンで特別に使用しています。

あまりにも長続きしません。

ありがとうございます。

+0

"localhost"が実際に127.0.0.1に解決されていることを確認しましたか? (私は、人々が "/ etc/hosts"ファイルを使ってその仮定を破ることを愚かなことをするのを見ました。) –

+0

@StephenC他の人のVMイメージを使用しています。それは可能性がありました。 (いくつかの問題を引き起こすlocalhost2することはできますか?) 127.0.0.1 localhostの\t 127.0.1.1 \t localhost2 #以下の行は、IPv6対応ホスト :: 1 IP6-localhostのIP6-ループバック のために望ましいものである - は、そのファイルでこれを発見しますfe00 :: 0 ip6-localnet ff00 :: 0 ip6-mcastprefix ff02 :: 1 ip6-allnodes ff02 :: 2 ip6-allrouters –

+0

おそらく関連はありますが(Javaではありません):http://stackoverflow.com/questions/ 33796955/mysql-access-denied-for-user-localhost-to-database /にあります。 –

答えて

0

まず、localhostアドレスを127.0.0.1として使用し、サーバーが起動していることを確認します。

次に、DBの資格情報を確認してください:あなたのユーザ名について確かめてください&?

希望すること

+0

はい、資格情報を確認してください。それはホスト名の問題のようですが、後でそれを調べます。今のところ私はすべての場所からそのユーザーを許可し、データベースにアクセスしました。 –

関連する問題