MySQLデータベースとBaseを接続する(その2)(2/2 ページ)
MySQLをBaseに登録し、OpenOffice.orgと連携させながら業務アプリケーションとして活用するための基礎知識学ぶ同特集。今回は、MySQLの設定を行うとともに、MySQLをBaseに登録するまでを解説する。
JDBCドライバのインストール
OOoからMySQLを操作するために、冒頭で述べたようにJDBCドライバを利用します。MySQLのJDBCドライバMySQL Connector/J3.1は、次のURLで配布されています。
http://dev.mysql.com/downloads/connector/j/3.1.html
2005年4月20日現在、バージョン3.1.8(mysql-connector-java-3.1.8.zip)が最新版となっています。圧縮ファイル内にはソースも含まれているため、展開するとかなりの数のファイルが現れますが、必要なのはmysql-connector-java-3.1.8/mysql-connector-java-3.1.8-bin.jarだけです。インストールは、同ファイルをJREのあるパス以下のlib/extディレクトリか、任意のディレクトリにコピーします。
ただ、JREをアップデートした場合パスが変わることがあるため、この点を考慮してJDBCドライバをインストールするディレクトリは、JREのパス以外にすることをお勧めします。ここでは例として、ホームディレクトリにデータベース格納のためのDatabaseディレクトリを作り、さらにその下にdriverディレクトリを作ることにします。具体的には、実行例6のように実行すれば、MySQLのJDBCドライバがインストールされます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
MySQLをBaseに登録
JDBCドライバを任意のディレクトリにインストールした場合は、OOo側で設定が必要です。JREのパス以下のlib/extディレクトリにインストールした場合は、この作業は必要ありません。
また、Baseへの設定後、OOoの再起動が必要なので、BaseにMySQLを登録する前に実行しておきます。
OOoの[ツール]−[オプション]で「オプション」ダイアログを表示し、[OpenOffice.org]−[Java]を選びます。[クラスパス]ボタンをクリックして表示される「クラスパス」ダイアログの[アーカイブを追加]ボタンを使って、図1のようにDatabase/driver/mysql-connector-java-3.1.8-bin.jarを登録します。「クラスパス」ダイアログの[OK]ボタンをクリック後、「オプション」を[OK]ボタンで更新し、OOoを再起動してください。これで、BaseにMySQLを登録する事前準備はすべて整いました。
ウィザードでMySQLのデータベースを登録
HSQLDBとは違い、新規に任意のDBMSを登録する場合は、そのDBMSサーバーにデータベースが存在している必要があります。MySQLには、先に紹介したようにテスト用のtestというデータベースがあるので、これを利用することにしましょう。HSQLDBのときと同じように、登録はウィザードを利用します。
OOoのメニューで、[ファイル]−[新規作成]−[データベース]を選びます。データベースウィザードが起動するので、ステップ1の「データベースの選択」で「既存のデータベースに接続」をチェックし、データベースの種類に「MySQL」を選びます。図2のように、ステップ2以降がMySQL用の設定に変わるので、[次へ]ボタンをクリックします。ステップ2の「MySQL 接続のセットアップ」では、「JDBC(Java Database Connectivity)を使って接続」をチェックし、[次へ]ボタンをクリックします(図3)。
ステップ3の「JDBC 接続のセットアップ」では、「Name of the database」欄に「test」、「Server URL」欄に「localhost」を入力します(図4)。残りの「Port number」、「MySQL JDBC ドライバクラス」各欄はデフォルトのままで構いません。また、[Test class]ボタンをクリックし、JDBCドライバとの接続テストを行っておきましょう。エラーが表示されなければ、ドライバの設定に問題はありません。[次へ]ボタンをクリックします。
ステップ4の「ユーザー認証のセットアップ」では、「ユーザー名」欄に「open」を入力し、「Password required」をチェックします(図5)。ここでも[Test Connection]ボタンをクリックし、openユーザーのパスワードで接続テストを行っておきましょう。エラーが表示されなければ、MySQL側の設定に問題はありません。[次へ]ボタンをクリックします。ステップ5の「保存して続行」は、データベース登録後の作業を選ぶ個所ですが、デフォルトのままで構わないので、そのまま[完了]ボタンをクリックします(図6)。
図7の「名前を付けて保存」ダイアログが表示されたら、保存先にDatabaseディレクトリを指定し、データベースの名前を指定して[保存]ボタンをクリックします。ここでは、データベースファイル名を「MySQL」としています。
最後に、図8のように「MySQL」というBaseの画面が表示されたら、MySQLのtestデータベースの登録は終了です。
エラーが表示された場合は?
エラーが表示され、MySQLのデータベースとの接続が確立できない場合は、MySQL、OOo、さらにOSのシステムなどの設定が絡んできます。なかなか複雑なので、どの部分に問題があるのか見極めなければいけません。本原稿のために検証したDebianの環境でもエラーが表示され、OOoとMySQLが接続できないケースがありました。このトラブルへの対処をコラム1にまとめましたので、参考にしてください。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
コラム1 Base登録時のトラブル対策
筆者の環境では、MySQLのTCP/IP接続を確認する際、リストAのようなエラーが表示されました。リストAの内容は、「"localhost.localdomain"というホストからの接続は許可されていません」というものです。確かにmysqlデータベースのuserテーブルのホストフィールドには、このホスト名のエントリはありません。この問題は、/etc/hostsファイルから「localhost.localdomain」のエントリを削除することで対応できます。
また、MySQLのTCP/IP接続を確認せずにBaseにMySQLを登録すると、データベースウィザードのステップ4「ユーザー認証のセットアップ」で[Test connection]ボタンをクリックした際に、テストに失敗します。ウィザードのエラーから、その原因を特定することはおそらく難しいでしょう。
このことから、MySQLのTCP/IP接続の確認は重要ですし、Linuxのホスト名がどのような方法で設定されているのか、というシステム管理に関する知識が必要な場合もあります。
OOoとデータベースの接続でうまくいかない場合は、ケース・バイ・ケースでなかなか解決が難しいのですが、原因がデータベースやシステムの設定にある場合が多く、もう1度見過ごしがないかチェックすることは必要です。設定修正後それを反映するには、「/etc/init.d/mysql restart」と実行して、MySQLサーバーを再起動してください。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
次回(9月5日公開予定)はBaseでMySQLのテーブルを作成してみよう。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
関連記事
- MySQLデータベースとBaseを接続する(その1)
- OpenOffice.org Impressでプレゼンテーションに味付けを
- 第5回 OpenOffice.orgの「Base」はAccessを狙わず何を目指したか
- 第4回 「Impress」で問うPowerPointを使う理由
- 第3回 OOoの表計算「Calc」とExcelを互換検証
- 第2回 「Writer」が目指したワープロソフトの理想とは
- 第1回 OpenOffice.org 2.0はMicrosoft Office代替えにふさわしいか
- Interview:サンはOpenOffice.orgコミュニティーをどう見ているのか?
- OpenOffice.org 2.0について、2人のマネージャーに聞く
- Free Software FoundationとOpenOffice.org、Java問題解決へ
- OpenDocumentをOASIS標準に認定
関連リンク
Copyright(c)2010 SOFTBANK Creative Inc. All rights reserved.