2012-01-10 34 views
0

に私は(MySQLはWAMPサーバにホストされている)接続しmysqlデータベースのJava

String userName = "root"; 
String password = "pass"; 
String url = "jdbc:mysql://localhost/dbase"; 
Class.forName ("com.mysql.jdbc.Driver").newInstance(); 
conn = DriverManager.getConnection (url, userName, password); 

私はローカルホストから実行しているときに、接続が細かいJavaからMySQLデータベースに接続しようとしています。私は自分のコンピュータのIP(同一ネットワーク内)でローカルホストを交換する別のコンピュータからこのコードを実行するときしかし、私は私があまりにもポート3306で試してみました

message from server: "Host '<name>' is not allowed to connect to this MySQL server" 

、エラーが発生します。どうしましたか?

+0

ここを参照してください - http://forums.mysql.com/read.php?52,18966,134534問題の原因として考えられます。 – Perception

+0

私はmysqlがローカルホスト接続のみをデフォルト設定していると信じています。ローカルホストの外部に接続できるように設定ファイルを変更する必要があります。したがって、許可されたユーザーにあなたのIPアドレスを追加してください。 – Andy

答えて

5

これはデータベース側の権限の問題です。特定のIPアドレスからの接続を許可するユーザrootにアクセス権を与える必要があります。

このような何か作業をする必要があります:一方

GRANT ALL ON foo.* TO [email protected]'1.2.3.4' IDENTIFIED BY 'PASSWORD'; 

を。私はrootをデータベースへのアクセスに使用しません。これには通常のユーザーアカウントを使用する必要があります。

+0

コメントありがとうございます。私は別のユーザー名管理者を作成し、管理者にすべて許可しました。* '@パスワード'で識別された ''がrootになりました。 – Ank

+0

@Ankur:間違ったパスワードを入力しているように見えますか?あなたは何を使っていますか? – Icarus

+0

あなたのreplywellに感謝します。私のユーザ:パスはadmin:adminで、これは私がコードで述べたものです。間違っていません。 – Ank

2

開発にはrootアカウントを使用しないでください。問題を解決するには、dbasedevと呼ばれる仮説的なユーザーを作成します。

CREATE USER 'dbasedev'@'%' IDENTIFIED BY 'passw0rd!'; 
GRANT ALL PRIVILEGES ON *.* TO 'dbasedev'@'%'; 
FLUSH PRIVILEGES; 

これは、ユーザーIDとMySQLサーバに接続できるようになります:dbasedev、パスワード:passw0rd!、任意のホストから。

これは、@ Icarusの回答を補完するものであり、すべてのコードをコメントに投稿できませんでした。

関連する問題