2011-10-21 39 views
0

javaを使用してmysqlに接続すると、奇妙な問題が発生しました。javaを使用してmysqlに接続中にエラーが発生しました

私はJavaからMySQLへの接続を試みたTomcatの

でXAMPPを実行していますよ。私のマシン上でうまく動作しますが、友人のマシンでエラーが発生します。ユーザー 'tomcat' @ 'localhost'のアクセスが拒否されました。

事は - 私はPHPを使って全く同じ情報に接続できます。

接続するためのJavaコードは次のとおりです。

String url = "jdbc:mysql://localhost:3306/"; 
    String dbName = "mta_db"; 
    String driver = "com.mysql.jdbc.Driver"; 
    String userName = "tomcat"; 
    String password = "tomcat"; 
    try { 
     Class.forName(driver).newInstance(); 
     _conn = DriverManager.getConnection(url + dbName, userName, password); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

ポートが原因である可能性がありますどのような任意のアイデア

罰金ですか?

+1

mysqlでSHOW GRANTSとは何ですか? –

+0

の前提条件は問題ありません。私は問題なくPHPを介して接続することができます。 SHOW GRANTSは、GRANT ALL PRIVILEGES ONで2行を返します。*。* TO 'root' @ 'localhost' GRANT OPTION、GRANT PROXYを "@" TO 'root' @ 'localhost'に付与します。私もユーザールートを試しました – galchen

答えて

1

エラーはおそらくMySQL側で発生しています。すなわち、tomcatユーザーは、localhostから接続する特権を持っていません。

GRANT ALL ON mta_db.* to [email protected]'%' identified by 'yourpassword'; 

この場合%は、任意のホストのワイルドカードです:あなたが最初にそうようなMySQLのGRANT声明を経由して、どこからでも接続することができるアカウントを作成することができますsimplicities酒のために

接続しているクライアントの実際のIPを知っていれば、セキュリティをより意識して後で解決できます。

+0

は動作しません。それはPHPのbtwから正常に接続し、私は特権をチェックした – galchen

関連する問題