web-dev-qa-db-ja.com

Javaを使用してリモートMySQLデータベースに接続する方法は?

Eclipse IDEを使用してJSFアプリケーションを作成しようとしています。データベースとしてリモートmySQLサーバーを使用しています。テーブルを作成してアクセスするためにこのリモートデータベースに接続するにはどうすればよいですか?

26
Angeline

localhostの代わりに、データベース接続文字列でリモートマシンのIP /ホスト名を指定するだけです。例えば:

jdbc:mysql://192.168.15.25:3306/yourdatabase

ポートへのアクセスをブロックするファイアウォールがないことを確認してください3306

また、接続しているユーザーがこの特定のホスト名から接続できることを確認してください。開発環境では、'username'@'%'ユーザー作成マニュアル および GRANTマニュアル を確認してください。

41
Bozho

接続文字列でrempoteマシンのIP /ホスト名を渡す必要があります。

import Java.sql.*;
import javax.sql.*;

public class Connect
{
   public static void main (String[] args)
   {
       Connection conn = null;

       try
       {

           String url = "jdbc:mysql://localhost:3306/mydb";
           Class.forName ("com.mysql.jdbc.Driver");
           conn = DriverManager.getConnection (url,"root"," ");
           System.out.println ("Database connection established");
       }
       catch (Exception e)
       {
           e.printStackTrace();

       }
       finally
       {
           if (conn != null)
           {
               try
               {
                   conn.close ();
                   System.out.println ("Database connection terminated");
               }
               catch (Exception e) { /* ignore close errors */ }
           }
       }
   }
}
9
giri

リモートマシンからデータベースにアクセスするには、データベースにすべての権限を付与する必要があります。

次のスクリプトを実行して、権限を付与します。GRANT ALL PRIVILEGES ON TO user @ '%' IDENTIFIED BY 'password';

4
Puran Singh

さらに、MySQLサーバーの設定(Debianでは/etc/mysql/my.cnf、/etc/default/mysql)が「skip-networking」をアクティブにしておらず、ループバックインターフェイス(127.0のみにバインドされていないことを確認する必要があります.0.1)だけでなく、接続するインターフェイス/ IPアドレスにも。

2
tmr
  1. スキーマ 'mysql'(mysql.user)に新しいユーザーを作成します。mysqlワークスペースでこのコードを実行します“GRANT ALL ON . to user@'%'IDENTIFIED BY '';

  2. データベースがあるマシンで「3306」ポートを開きます。 Control Panel -> Windows Firewall -> Advance Settings -> Inbound Rules -> New Rule -> Port -> Next -> TCP & set port as 3306 -> Next -> Next -> Next -> Fill Name and Description -> Finish ->

  3. DBサーバーのIPを含むcmdのtelnetメッセージで確認してみてください

1
JeewanaSL

アプリケーションまたはクライアント側のツール(navicat)から、または実行中のサーバー(Apacheまたはweblogic)に関係なく、サーバーのリッスンポートに接続されているすべての接続を閉じます。最初にすべての接続を閉じてから、MySQL、Apacheなどのすべてのツールを再起動します。

1
vishakha sharma

Ubuntuでは、localhostと '%'バージョンのユーザーを作成し、両方にdatabase.tablesへの適切なアクセスを許可した後、/ etc/mysql/mysql.conf.d/mysqlの 'bind-address'をコメントアウトする必要がありました.cnfを実行し、mysqlをSudoとして再起動します。

バインドアドレス= 127.0.0.1

0
Jack Mason

my.cnfファイルで、次を変更してください

##ネットワークをスキップする代わりに、デフォルトは## localhostでのみリッスンするようになりました。 ## bind-address = 127.0.0.1

0
Buminda