他マシンからの接続

クライアントとサーバー自体が別のマシンである場合

 |--------------|    |--------------|
 |クライアント |    |サーバー   |
 |自マシン   |-------->他マシン   |
 |--------------|    |--------------|
 
よくサンプルではlocalhostからの利用が多い。TelnetとかSSHの場合基本的にはそのマシンにログインして行う場合などは
それでいいのだが、基本、それ以外の場合
他のマシンからの接続となると
Postgresの場合は「pg_hba.conf」を修正すること
MySQLの場合は特権ユーザーを追加する事により可能となります。具体的には
mysql」テーブルでユーザー管理がされているのでその部分を追加、および権限を渡すことによって
他のマシンからの接続を確立させます。一応カテゴリ的には「MySQLの」ということですが、自分がやった手順をそのまま
乗せるので、DBにかかわらずそれら以外の部分も設定変更を行っております

      • エラー内容1(JavaWebStartのアプリ)

java.sql.SQLException: Access denied for user: 'root@**********.*****.****.****.ne.jp' (Using password: YES)
.....
                                  ↑ドメイン指定でのユーザ

  1. Userテーブルに挿入

INSERT INTO user (Host,User,Password) values ('**********.*****.****.****.ne.jp','root',password('パスワード'));

  1. dbテーブルに追加

INSERT INTO db (Host,Db,User) values ('%','テーブル名','root');
ちなみに'%'はワイルドカードと同意。本番ではコレはしないようにする

  1. hostsファイルを変更

viなどで編集追加すること

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
**********.*****.****.****.ne.jp #20060629 G___orz add
***.***.***.*** #20060629 G___orz add
グローバルIPアドレス

      • エラー内容2(JavaWebStartのアプリ)

java.sql.SQLException: Access denied for user: 'root@***.***.***.***' (Using password: YES)
.....
                                 ↑IP指定でのユーザ
                             おそらくhostsファイルに追加されたため

  1. GRANTで先のユーザーの権限を譲渡

GRANT ALL PRIVILEGES ON *.* TO root@***.***.***.** IDENTIFIED BY 'パスワード';

これで他マシンからの接続を許可したことになる
参照:
http://www.atmarkit.co.jp/flinux/rensai/mysql04/mysql04b.html
http://www.mysql.gr.jp/mysqlml/mysql/msg/5252
http://dev.mysql.com/doc/refman/4.1/ja/access-denied.html