2017-10-13 7 views
-1

私は作成したユーザーでコマンドラインからリモートデータベースにアクセスできますが、jdbcから接続しようとすると数値フォーマット例外が発生します。JDBCからリモートからmysqlにアクセスする際の数値書式例外の取得

public static final String URL = "jdbc:mysql://ipv6:3306/Library"; 
public static final String USER = "user"; 
public static final String PASSWORD = "correctpass"; 
conn = DriverManager.getConnection(url, user, password); 

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Cannot load connection class because of underlying exception: 'java.lang.NumberFormatException: For input string: "30a:2e1a:2470:7c29:300b:f757:2941:3306"' 

を投げる私は、なぜイムとても混乱thatsのと同じ資格情報を使用して、端末を投げるログインすることができます。助けてくれてありがとう。

+0

URLのホストは明らかに間違っています。ターミナル経由で接続できるかどうかは関係ありません。 JVMはそれを好まない。修理する! – duffymo

+0

URLにipv6が含まれていますか?最初の ':'は '::'でなければなりません。 – Jens

+0

また、初期バージョンのドライバはipv6をサポートしていないかもしれません。 – Mena

答えて

0

IPV6アドレスを使用して接続する理由はわかりませんが、実行することはできますか。

public static final String urlString = “jdbc:mysql://address=(protocol=tcp)(host=your-ipv6-address)(port=3306)/Library”; 
Class.forName(driver); 
public static final String user= "user"; 
public static final String password= "correctpass"; 
DriverManager.setLoginTimeout(getConnectionTimeOut()); 
dbConnection = DriverManager.getConnection(urlString,user,password); 

上記を試してください。 mysql接続の読み込みアドレスのために、コロンの後に読み込まれたポートを持つことが予想され、すべてのポートが数字になっています。標準のアドレスを使用していないので、ポートを解析しようとするとエラーが返されます(すべての数字は期待どおりですが、数値フォーマットの例外に遭遇するように文字があります)。 IPV6を使用している場合は、IPV6として宣言する必要があります。

+0

私は私のipv4からアクセスする新しいユーザーを作成する場合。私はターミナルからログインすることさえできません。ファイアウォールの問題かもしれませんか? – dcolton

関連する問題