MySQLの続きです。今回は既存のデータベースをOpenOffice.org Baseを使って読み込み、さらにCalc(OpenOffice.orgの表計算ソフト)やWriter(OpenOffice.orgのワープロソフト)で読み込んだデータを利用する方法を紹介しましょう。

base-1MySQLと接続すれば、MySQLのデータベースを利用することができます。


calc-1MySQLのテーブルをCalcに書き出したようす。
テーブルを選択してドラッグ&ドロップするだけで、ワークシートに貼り付けることができます。



writer-1MySQLのテーブルをWriterに書き出したようす。Calcと同様にテーブルを選択してドラッグ&ドロップするだけでデータを貼り付けることができます。レイアウトを設定することも可能です。

BaseとMySQLの接続

MySQLのデータをBaseで読み込むには、MySQLサーバと直接接続する方法(直接接続)とODBCドライバを利用する方法(ODBC接続)がありますが、今回はODBC接続で文字化けが解消できなかった(ODBCドライバ側の問題らしい)ので、直接接続で試しました。

OpenOffice.org Baseは、ソフトウェア・センターで「openoffice」で検索して「OpenOffice.org Database」を選択してインストールすれば使えるようになります。

さっそく試してみましょう。

まずは「アプリケーション>オフィス>OpenOffice.org Database」で起動します。

base-set-1最初にこの画面になりますので、「既存のデータベースに接続」にチェックを入れ、MySQLを選択します。
続いて「次へ」をクリックします。



base-set-2「直接接続」にチェックを入れ、「次へ」をクリックします。


base-set-4「データベース名」に使用するデータベースの名前を入力し、「サーバー」に「localhost」と入力します。ポートはデフォルトのままでいいでしょう。


base-set-5ユーザ認証のセットアップ:「ユーザ名」に「root」と入力(後ほどユーザの追加方法を説明しますがまずはrootで接続)し、「必須パスワード」にチェックを入れます。

ここで、「テスト接続」をクリックしてみます。

base-set-7MySQLのrootパスワードを入力してOKをクリック。

これでMySQLへの接続を確認することができます。確認後、ユーザ認証のセットアップ画面に戻って「次へ」をクリックします。

base-set-6ここではBaseのデータベースの登録を設定します。「はい、登録します」と「データベースを開いて編集します」にチェックを入れて「完了」をクリックします。

base-set-8Baseのデータベースの名前を入力して保存します。これで拡張子odfがついたデータベースファイルが保存されます。

ちなみに、ここで作成したデータベースは、OpenOffice.org全体で利用可能です。

base-1Baseのメイン画面。テーブルのウィンドウにMySQLのデータベースとテーブルの一覧が表示されます(rootではすべてのデータベースにアクセス可能)。

base-2テーブル名をクリックすれば「表データビュー」が起動して中身を見ることができます。ただし、データの並べ替えや検索は可能ですが、Baseで改めて追加したテーブルでないと、データの書き換えなどの編集はできないようです。

Calcでの利用

メニューから「表示>データソース」を選択すればデータベースの一覧が表示されます。

テーブルを選択してクリックすると、パスワードを求められるので、最初だけMySQLのrootパスワードを入力します。すると、テーブルの一覧が表示されますので、その中のテーブルを選択すれば右側のテーブルの編集枠にテーブルの内容が表示されます。ただし、これもBaseで改めて追加したテーブルでないと、データの書き換えはできません。

あとは、選択したテーブルをドラッグすれば、表データの任意の場所に貼り付けることができます。

Writerでの利用

Calcと同様に、メニューから「表示>データソース」を選択すればデータベースの一覧が表示されます。選択したテーブルをドラッグすれば、データを貼り付けられますが、Writerの場合、表形式の設定画面が表示されます。

writer-2データベースの列の挿入:表示させるフィールド名(列名)を1つずつ選択し> で指定するか、>> ですべての列を指定します。

writer-3表の書式:列幅や表の背景色などの体裁を設定します。

Calcでは、他にも「データ>データパイロット」からデータを整形して取り入れる方法などもあり、ここで紹介した内容はあくまで初級編ということで。

MySQLのデータは、通常rootではなく、データベースを利用するユーザを作成して扱うべきなので、ここで紹介した方法はあくまでローカルでの利用を前提としたものです。

追記:新しいユーザの作成と権限付与

ユーザの追加方法を書いておきます。コマンドからは、MySQLにログインして下記のコマンドを実行します。

mysql> GRANT ALL ON data1.* TO vineuser@localhost IDENTIFIED BY 'password';

「data1」のところにユーザが使用するデータベース名(.*の部分はデータベースに含まれるすべてのテーブルを示す)、「vineuser」のところにユーザ名(@localhostを加えるとローカルシステムからのアクセスのみが許可される)、「password」のところにユーザのパスワードを設定します。

「ALL」は指定したデータベースに対して、全ての操作ができる権限を与えており、SELECT,INSERT,UPDATE,DELETE のように、カンマで区切って操作単位で権限を与えることもできます。

なお、mysql-administratorを使えばGUIでの追加も可能です。