web-dev-qa-db-ja.com

JDBCを使用してXAMPPMySQLローカルDBに接続する方法は?

私はこのテトリスゲームをJavaで作成しました。これは、DBを使用してハイスコアを記録します。リモートMySQLDBを使用している限りは問題なく動作しましたが、XAMPPMySQLを使用してlocalhostDBをセットアップしようとすると、次のコマンドで「SQLException:通信リンク障害」のように表示され続けます。

con = Java.sql.DriverManager.getConnection("jdbc:mysql://localhost/score", user, psw);

URLかDBの設定が間違っていると思いますが、何をチェックすればいいのかよくわかりません。何か案は?

編集:私の友人は、URLの「localhost」を「127.0.0.1」に置き換えることで私の問題を修正しました(これは確かに想像できるように非常に恥ずかしいことでした:P)。

したがって、質問は次のとおりです。XAMPPが「localhost」をIPアドレスに変換できないのはなぜですか、またそれを修正する方法は?

9
Jakub Stejskal

XAMPPが「localhost」をIPアドレスに変換できないのはなぜですか?

これはXAMPPの問題でもプログラミングの問題でもありません。これはDNSの問題です。

まず、次の行がfirst行の%SystemRoot%/system32/drivers/etc/hostsファイルがありますか? (したがって、すべてのコメントの後、ただし他のホスト宣言の前に)

127.0.0.1 localhost

更新:私が行ったコメントによると Googled 少し、MySQLJDBCドライバーが食べないようです IPv6 アドレス。つまり、::1127.0.0.1に変更する必要があります。しかし、私は このトピック も見つけました。これは、次のJVM引数を使用してこの問題を修正できることを示しています。

Java -Djava.net.preferIPv4Stack=true 
7
BalusC

接続を試みて成功しました。まず、phpmyadmin-にデータベースを作成します。 'mydb'そしてコードにこの値でconnection.urlを置きます

'jdbc:mysql://localhost:3306/mydb'

最初にデータベースを作成しないと、接続されません

2
bhv

MySqlでは、ローカルホストからのユーザーのアクセスを明示的に許可する必要があります。これが例です( ここ から取得):

mysql> grant usage on *.* to amarokuser@localhost identified by 'amarokpasswd';
mysql> grant all privileges on amarokdb.* to amarokuser@localhost ;
1
tangens