2011/04/09

eclipseからCentOSのmySQLに接続

・windows上のphp開発環境では、xampp上からmySQLを操作していました。
しかし、symfonyになって開発環境をCentOSに移してから、mySQLの操作はSQL文で直接操作しています。GUIでの操作に慣れているので少し面倒で、GUIで出来ないかと思っていました。
そこで、たまたまeclipse上の環境を見ていたところ、JDBCコネクタ経由でmysqlの接続情報がありました。

・Webで調べた情報で、ローカルPCのeclipseからCentOSのmySQLに接続出来ました。
設定方法のポイントは以下の3点です。

(1)mysql(サーバ)のユーザ情報は、接続先情報も保持しているので、ローカル(CentOSにあるmysqlから見てローカル)以外から接続するためには、ユーザ情報と共に接続先情報の設定も必要。
(2)mysql接続用「JDBCコネクタ」ドライバをeclipseに設定する。
・接続情報はeclipseにサンプルとして付属しています。しかし、ドライバは
(私のインストールしたpleiades 3.6)eclipseには付いていませんでした。
pleiadesには、いくつかセットがあるので、JDBCドライバが含まれるものも
あるかもしれません。
(3)eclipseで接続情報を設定する。
JDBCの画面から「新規」接続すれば、DBを参照・更新出来ます。

なお、この設定は開発環境を想定していますので、セキュリティは考慮していません。
セキュリティを考慮する必要がある場合は、必要な設定をして下さい。


(1)mySQLのユーザ情報の設定・確認
・まず、環境確認のため、WindowsのコマンドプロンプトからCentOSのmysqlに接続します。
(windowsにはxampp環境があり、mysqlクライアントがインストールされていることが前提です)
> mysql -h CentOSのIPアドレス -u user -p
> Enter password:パスワード入力
これで「mysqlにログイン出来れば、そのユーザ(user)はeclipseからJDBCの接続に使うことが出来ます。

・mysqlのログインがエラーになった場合
ERROR 1130 (HY000): Host 'windowsのIPアドレス' is not allowed to connect to this MySQL server
mysqlのユーザがローカル接続用になっています。
このため、JDBCの接続に使うためにはMySQL(サーバ)の設定追加が必要です。

・外部接続用ユーザ設定のため、centOS上からmySQLのrootユーザでmySQLに接続します。
$ mysql -u root
・新たに外部接続用ユーザを設定します。(xpは、外部接続PC)
mysql> GRANT ALL PRIVILEGES ON *.* TO user@"xp"
    -> IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
・この設定、何故か反映に時間がかかるときがあります。 理由がわかったら追記します。

・なお、CentOSがvmware上でnat接続だと、xpにあたる部分がCentOS上のmysqlから見て、ロ-カルIPではありません。(PCのipconfigで表示されるVMnet8のアドレスです)
PCからvmware上のCentOSにtenletで接続していれば、whoコマンドで接続PCのipが表示されます。このipアドレスを指定して下さい。
またセキュリティを犠牲にするなら%が使えます。詳細はmysqlのマニュアルを参照して下さい。

・設定の確認
mysql> select Host,User from mysql.user;

・ユーザの準備が出来たので、PCのWindowsコマンドプロンプトから確認
> mysql -h CentOSのIPアドレス -u user -p
> Enter password:パスワード入力
これで「mysqlにログイン出来れば、そのユーザ(user)はeclipseからJDBCの接続に使うことが出来ます。

参照元:MySQL のインストールと接続設定 - nova の日記


(2)「JDBCコネクタ」ドライバをeclipseに設定する。
・参照元に手順の詳細がありますので参考にして下さい。
以下は、手順概略です。
mySQLのサイトから、ダウンロードページに行って、
「Connectors」「Connector/J」とたどり「Source and Binaries (zip)」
をダウンロードする。
ダウンロードには、mySQLのサイトへのログインを求められます。
アカウントを持っていない場合は、ユーザ登録をする必要があるかもしれません。
eclipseで使用するドライバなのでwindows用(zip)を落として下さい。
ダウンロードしたら、ファイルを解凍。解凍したフォルダの中にドライバがあります。

私の使ったものは、以下のファイル名でした。
mysql-connector-java-5.1.15-bin.jar

これを、eclipseのフォルダに入れます。
eclipseからあとで参照するのでとりあえずどこでも良さそうです。

参照元:Java初心者入門講座: Java MySQL用のJDBCドライバを入手する方法。


(3)eclipseの接続情報を設定する。
・eclipseの接続情報
メニューから、ウインドウ/設定
設定画面から、DBViewer プラグイン/接続文字列
JDBCドライバ:com.mysql.jdbc.Driver
接続文字列:jdbc:mysql://user@CentOSipアドレス:3306/study
最後の「study」はデフォルト接続のDB名です。

・eclipse画面右上のパースペクティブを開く
その他で、DBViewerを選択
・左にDBツリービューが開くので、
DVBiewerPluginで、右クリックして「登録」
・データベース定義の登録画面にて、JDBCドライバから「ファイルの追加」でダウンロードしたドライバを選択、「次へ」
・接続情報の設定画面にて、接続ユーザ、パスワードを入力、「テスト接続」で「接続に成功しました」と表示されれば、接続テストはOKです。
{次へ」で進み「完了」
これで左のDBツリービューにmysqlのDBが表示されます。

なお、OpenOfficeでもMySQLのデータを参照出来ます。

0 件のコメント:

コメントを投稿