2012-02-19 8 views
2

私はjava seを使用するアプリケーションを持っていますが、コーディング中にlocalhostにmysql workbenchがインストールされていれば、すべて正常に動作します。今私は、人々がそれを使用できるようにjarファイルを配布する必要があります。しかし、データベースにアクセスしようとすると、接続エラーと表示されます。データベースパスでは、localhostを、データベースがあるコンピュータのipに置き換えました。誰かが私を助けてくれますか?Javaアプリケーション:別のコンピュータのデータベースにアクセス

どうもありがとう

+0

完全なエラーメッセージを投稿できますか? –

+2

あなたが接続できることを確認するために、データベースサーバにpingまたはtelnetできる必要がありますか? –

+0

リモートホストからのデータベースアクセス許可を確認します。 – Santosh

答えて

1
  1. あなたが知っているように、一般的にはJDBCのために、あなたはあなたの接続文字列でホストを指定する必要があります。

  2. 通常、Class.forName()でドライバを指定し、Java CLASSPATHにドライバの.jarディレクトリを指定します。

  3. あなたはおそらくMySql/Jコネクタを使用しています。これは、すべてのクライアントがアプリケーションと共に展開する必要があると思います。

  4. また、mySqlポート(デフォルト3306)が開いていることを確認する必要があります。

  5. Mysql "users"は、ホストごとに定義され、許可されています。また、これが "Users" mysqlテーブルに正しく設定されていることを確認する必要があります。

  6. アプリケーションで使用可能なすべての例外情報が記録されていることを確認してください。特定のエラーメッセージをここに投稿してください。

    を助け

「希望

PS: 『MySQLのワークベンチ』への唯一の関連性は、あなたのアプリは、あなたが、正しいMySQLのワークベンチを使用して、ローカルで実行すると動作するように起こるということですか?もしそうなら、おそらくこの質問の良いタグではありません...

+0

1.チェック 2. Class.forName( "com.mysql.jdbc.Driver"); 3.私は私のアプリ コン=したDriverManager.getConnection( "?:mysqlの:JDBC // IP/DB1" + "ユーザー=ジェフリー&パスワード=")にこのコードを持っている場合はそう – koool

1

管理者としてDB上でクエリを実行してください。

GRANT ALL ON db1 TO 'jeffrey'@'%'; 

db1は、あなたのスキーマがあるとjeffreyはあなたがアクセス権を与えたいユーザーであると仮定すると。

+0

を行って 4を行って、 正しく動作するはずですか? – koool

+1

はい。それは動作するはずです。 – Santosh

+0

上記のコメントから私はpingしようとしましたが、リクエストは失敗したと言われています。 – koool

関連する問題