2012-04-19 9 views
2

netbeansを使用してLinuxサーバー上でホストされているMySQLサーバーに接続できません。netbeans/javaのlinuxサーバー上のmySQLサーバーへの接続に問題があります

これらの資格情報はすべて、MySQL Workbench「標準TCP/IPからssh経由」を介して接続するときに機能します。ここで

は私のコードです:

public class Database { 
private static final String DRIVER = "com.mysql.jdbc.Driver"; 
private static final String URL = "jdbc:mysql://john.myschool.edu:3306/cs3610"; 
private static final String USERNAME = "mbrooke"; 
private static final String PASSWORD = "mypass"; 
private Connection connection; 

public Database() throws Exception{ 
    try{ 
     connect(); 
    }catch(SQLException e){ 
     if(connection !=null){ 
      connection.close(); 
     } 
    } 
} 

//Open connection to database 
private void connect() throws Exception{ 
    connection = null; 
    Class.forName (DRIVER).newInstance(); 
    connection = DriverManager.getConnection(URL,USERNAME,PASSWORD); 

} 

}

私は "...接続=のDriverManager" を起動する行に#521でのSQLExceptionを取得していますし、私が引き起こしているかわからないんだけどこの問題。ドライバは、ステップスルーするとき、私はスロー例外なく「Class.forNameの(D ...」の行を過ぎてそれを作る、と正しくインストールされているようだ。

+2

一部のサーバーにはIPコントロールが組み込まれています。ホスティングサービスと議論して、IPにデータベース接続が許可されているかどうかを確認できます。 – markAnthopins

+0

同じコンピュータのMySQLWorkbenchからサーバーに接続できます。 NetBeansを使用している場合、私は別のIPを持っていますか? –

答えて

2

データベースサーバーにポート3306が開いていないか、MySQL資格情報にリモート接続を使用できないようです。

MySQLのワークベンチのTCP/IP over SSH設定は、まず、SSHサーバへのSSH接続を開き、データベースサーバ(多くの場合、localhostまたは127.0.0.1)に接続します。したがって、MySQL接続は実際にはSSHサーバーから開始されます。したがって、そのチャネルを介して接続する機能は、のSSHを実行しているサーバで実行されている場合は、Javaコードがで動作することを示しています。しかし、別のマシンからコードを実行しようとすると、ファイアウォールやMySQLの権限の問題が発生する可能性があります。

あなたのマシンにMySQLクライアントをダウンロードし、その方法で接続できるかどうかを確認します:mysql -h myDatabaseServer.school.edu cs3610 -u mbrooke -p'mypass'と表示されているか確認してください。 「接続が利用できません」というエラーが発生するか、「ユーザーmbrookeにリモートからアクセスする権限がありません」というエラーが表示され、問題の原因を特定できるはずです。

1

」=スラッシュ

URLを終了せずに、それを試してみてくださいJDBC:mysqlの://john.myschool.edu:3306/cs3610/";

のようなURL = "はjdbc:mysqlの://john.myschool.edu:3306/cs3610";

または "cs3610 /"という名前のデータベースがある

+0

同じ例外がありました。 –

関連する問題