mysql
RHEL 6サーバーの1つにデータベースを設定しました。java
プログラムを使用して別のコンピュータからこのサーバーのデータベースに接続したいと思います。どうすればいいですか?
答え1
クラスパスの設定
JDBCコネクタはパスにあります/usr/share/java/
。私達は輸出することができますクラスパス同様に、
export CLASSPATH=/usr/share/java/mysql-connector-java.jar:$CLASSPATH
ユーザー許可
データベースにアクセスするユーザーには権限を付与する必要があります。これは、mysql
次のクエリを使用して達成できます。
GRANT ALL PRIVILEGES ON *.* TO ‘user’@’%’ IDENTIFIED BY ‘<user-password>’ WITH GRANT OPTION;
これで、Javaプログラムを使用してこのコンピューターサーバーへの接続を確立できますが、このサーバーの名前を使用するか、別のコンピューターから接続する必要があるmysql
場合は、説明したようにいくつかの例外が発生します。localhost
ここそしてここ。
/etc/hosts
ファイルの編集
上記の手順では、システムのホスト名の代わりにシステムのIPアドレスのみを使用すると機能します。したがって、問題はdns
名前解決に関連していると思われます。
/etc/hosts
次の項目を含むようにファイルを変更しました。
127.0.0.1 servername.edu localhost
まだホスト名を使用してデータベースに接続できません。/etc/hosts
ファイルも変更したことを考えると変だと思われます。私はip6tables
これが問題であることを確認するために停止しました。ただし、どのオプションも機能しないため、例外が発生します。
ERROR: java.net.UnknownHostException:connection refused
/etc/my.cnf ファイルの編集
最後の例外は有望です。接続が拒否されたことを示すメッセージが表示されます。ホスト名のようなものは解決できません。だから私は/etc/my.cnf
ファイルから何かを変更し、ファイルに次の行を追加する必要があると思いました。
port=3306
bind-address=0.0.0.0
上記のように変更すると、ホスト名を使用してどこからでもこのコンピュータに接続できます。