私はこのテトリスゲームを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アドレスに変換できないのはなぜですか、またそれを修正する方法は?
XAMPPが「localhost」をIPアドレスに変換できないのはなぜですか?
これはXAMPPの問題でもプログラミングの問題でもありません。これはDNSの問題です。
まず、次の行がfirst行の%SystemRoot%/system32/drivers/etc/hosts
ファイルがありますか? (したがって、すべてのコメントの後、ただし他のホスト宣言の前に)
127.0.0.1 localhost
更新:私が行ったコメントによると Googled 少し、MySQLJDBCドライバーが食べないようです IPv6 アドレス。つまり、::1
を127.0.0.1
に変更する必要があります。しかし、私は このトピック も見つけました。これは、次のJVM引数を使用してこの問題を修正できることを示しています。
Java -Djava.net.preferIPv4Stack=true
接続を試みて成功しました。まず、phpmyadmin-にデータベースを作成します。 'mydb'そしてコードにこの値でconnection.urlを置きます
'jdbc:mysql://localhost:3306/mydb'
最初にデータベースを作成しないと、接続されません
MySqlでは、ローカルホストからのユーザーのアクセスを明示的に許可する必要があります。これが例です( ここ から取得):
mysql> grant usage on *.* to amarokuser@localhost identified by 'amarokpasswd';
mysql> grant all privileges on amarokdb.* to amarokuser@localhost ;