LinuxのMySQLを外部から接続できるようにする。

2つの壁があり、チョット苦戦したので、メモしておきます。

手順1)ポート3306を空ける。

・別PCのWindowsの[コマンドプロンプト]から以下のコマンドを実行し、
ポートが空いていないことを確認する。

C:\>telnet 192.168.0.99 3306
接続中: 192.168.0.99...ホストへ接続できませんでした。 ポート番号 3306: 接続に失
敗しました

Linux上から、GUIを立ち上げる。

    # startx

・メニューの[デスクトップ]/[システム管理]/[セキュリティレベルとファイヤーウォールの設定]を選択する。

・[セキュリティレベルの設定]ダイアログが開く。[その他のポート]を展開し、[追加]ボタンを押す。

・ポート 3306 を追加する。確認ダイアログが開くのでOKを押す。

・別PCのWindowsの[コマンドプロンプト]から以下のコマンドを実行し、メッセージが変わったことを確認する。

C:\>telnet 192.168.0.99 3306

最初はCUIからiptablesなど試していたのですが、よくわかりませんでした。上記のやるとあっさり解決。

手順2)mysqlに外部から接続するためのユーザを登録する。

telnetからmysqlの対話モードに入る。

# mysql -u root

・以下の2つのコマンドを実行し、新しいユーザとパスワードを設定する。
この中で、testがユーザID、testpass がパスワードになります。

mysql> GRANT ALL PRIVILEGES ON *.* TO test@"%" IDENTIFIED BY 'testpass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO test@localhost IDENTIFIED BY 'testpass' WITH GRANT OPTION;

※パスワードは必須かもしれない。(未確認)
mysqlの再起動が必要かもしれない。(未確認)
再起動の方法は、root権限で以下のコマンドを実行。

      /sbin/service mysql restart

補足)JDBCドライバのダウンロード&設定

・ダウンロード方法
http://dev.mysql.com/downloads/
左のメニューより、[Connectors]を選択。[Connector/J]を選択。ダウンロード後、解凍する。

JDBCの設定
ドライバ名: com.mysql.jdbc.Driver
URL: jdbc:mysql://192.168.0.99:3306/データベース名
ユーザ名 手順2で設定したユーザ名
パスワード 手順2で設定したパスワード
クラスパスにJDBCのjarファイルを追加。

AsanDatabaseBrowser
http://www.hcn.zaq.ne.jp/no-ji/AsanDatabaseBrowser20080611.zip