Eclipse IDEを使用してJSFアプリケーションを作成しようとしています。データベースとしてリモートmySQLサーバーを使用しています。テーブルを作成してアクセスするためにこのリモートデータベースに接続するにはどうすればよいですか?
localhost
の代わりに、データベース接続文字列でリモートマシンのIP /ホスト名を指定するだけです。例えば:
jdbc:mysql://192.168.15.25:3306/yourdatabase
ポートへのアクセスをブロックするファイアウォールがないことを確認してください3306
また、接続しているユーザーがこの特定のホスト名から接続できることを確認してください。開発環境では、'username'@'%'
。 ユーザー作成マニュアル および GRANT
マニュアル を確認してください。
接続文字列で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 */ }
}
}
}
}
リモートマシンからデータベースにアクセスするには、データベースにすべての権限を付与する必要があります。
次のスクリプトを実行して、権限を付与します。GRANT ALL PRIVILEGES ON 。 TO user @ '%' IDENTIFIED BY 'password';
さらに、MySQLサーバーの設定(Debianでは/etc/mysql/my.cnf、/etc/default/mysql)が「skip-networking」をアクティブにしておらず、ループバックインターフェイス(127.0のみにバインドされていないことを確認する必要があります.0.1)だけでなく、接続するインターフェイス/ IPアドレスにも。
スキーマ 'mysql'(mysql.user)に新しいユーザーを作成します。mysqlワークスペースでこのコードを実行します“GRANT ALL ON . to user@'%'IDENTIFIED BY '';
データベースがあるマシンで「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 ->
DBサーバーのIPを含むcmdのtelnetメッセージで確認してみてください
アプリケーションまたはクライアント側のツール(navicat)から、または実行中のサーバー(Apacheまたはweblogic)に関係なく、サーバーのリッスンポートに接続されているすべての接続を閉じます。最初にすべての接続を閉じてから、MySQL、Apacheなどのすべてのツールを再起動します。
Ubuntuでは、localhostと '%'バージョンのユーザーを作成し、両方にdatabase.tablesへの適切なアクセスを許可した後、/ etc/mysql/mysql.conf.d/mysqlの 'bind-address'をコメントアウトする必要がありました.cnfを実行し、mysqlをSudoとして再起動します。
my.cnfファイルで、次を変更してください
##ネットワークをスキップする代わりに、デフォルトは## localhostでのみリッスンするようになりました。 ## bind-address = 127.0.0.1