このエントリーをはてなブックマークに追加


LibreOffice BaseからPostgreSQLに接続する方法

Ubuntu、PostgreSQL、LibreOfficeを使用しLibreOffice BaseからPostgreSQLに接続する手順を以下に記します。
他の環境を使用する方は、以下の各種情報を読み替えて使用してください。

使用環境

各種使用したソフトウェア等を以下に記します。

OSUbuntu 12.04, Windows7
LibreOfficeLibreOffice4.1 Windows版
PostgreSQL9.1 (Ubuntuで稼働)

Ubuntu上(PostgreSQL)の環境構築

Ubuntu上にPostgreSQLをインストールしデータベース作成およびテーブルを作成した手順を以下に記します。

  1. UbuntuにPostgreSQLをインストール
    以下のコマンドでPostgreSQL9.1のパッケージをインストールしました。
    sudo apt-get install postgresql-9.1
  2. postgresql.confの修正 Windows7からUbuntuマシン(PostgreSQL)に接続するので、PostgreSQLの設定ファイルpostgresql.confの以下の部分を修正しました。
    (以下のファイルのありかはUbuntuの場合です。他の環境を使用している場合は読み替えてファイルを編集してください。)
    • Ubuntuで以下のように操作しpostgresユーザになり、postgresql.confをviで開きました。
      sakura@ubuntu:~$ sudo -i -u postgres
      [sudo] password for sakura:
      postgres@ubuntu:~$ vi /etc/postgresql/9.1/main/postgresql.conf
    • ポートのリッスンを開放するため以下のようにしました。
      • 修正前
        #listen_addresses = 'localhost'         # what IP address(es) to listen on;
      • 修正後
        listen_addresses = '*'          # what IP address(es) to listen on;
         
  3. pg_hba.confの修正
    外部から(LibreOffice Base@Windows)からPostgreSQL@Ubuntuに接続できるようにpg_hba.confに追記しました。
    • pg_hba.confをviで開きました。
      postgres@ubuntu:~$ vi /etc/postgresql/9.1/main/pg_hba.conf
    • 以下の設定を追記しました。
      以下の設定の192.168.56.1/24ですが、当方の環境ではこのIPセグメント上で動作していたためです。
      24(255.255.255.0)も当方の環境が24のためです。
      皆さんの環境にあうように読み替えてください。
      また、認証不要のtrustを指定しています。
      host    all             all             192.168.56.1/24         trust
  4. PostgreSQLを以下のコマンドで再起動します。
    postgres@ubuntu:~$ /etc/init.d/postgresql restart
     * Restarting PostgreSQL 9.1 database server                                   [ OK ]

以上でPostgreSQLの設定は完了です。

データベーステストテーブルの作成

上記のpostgresユーザのままで以下のコマンドでデータベースとテーブルを作成しました。
注意点としては、テーブル作成時にかならずプライマリキーを指定してください。
プライマリキーを指定しないと、Baseによるテーブルのレコード内容の修正ができなくリードオンリーになります。
(プライマリキーがないので編集できませんよね。確かではないですが以前ODBC接続の場合はOID?を使用してできたように気がします…)

postgres@ubuntu:~$ createdb testdb
postgres@ubuntu:~$ psql testdb -c "create table t1 (a int primary key, b int, c int);"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "t1_pkey" for table "t1"
CREATE TABLE

データも一件INSERTしておきます。

postgres@ubuntu:~$ psql testdb -c "insert into t1 values (1, 1, 1);"
INSERT 0 1

LibreOffice Baseからの接続

以下の手順でLibreOffice Base(Windows7で稼働)からUbuntu上のPostgreSQLに接続しました。

  1. LibreOfficeの起動
  2. データベースをクリックします。
    01.gif
     
  3. データベースウイザードが起動されます。
  4. 既存のデータベースに接続をクリックします。
  5. PotgreSQLを選択します。
  6. 次へボタンを押します。
    02.gif
     
  7. データソースのURLを以下のように入力します。
    dbname=データベース名 host=ホスト名
    今回この資料では、以下のような環境になっています。
    dbnamehost
    testdb192.168.56.12
    従って以下のように設定しました。
    03.gif
     
  8. 次へボタンを押します。
  9. ユーザ名を入力します。
    今回の環境ではpostgresになります。
    必須パスワードですが、pg_hba.confでtrustを指定したのでチェックを入れませんでした。
    pg_hba.confの設定によっては必須パスワードにチェックが必要になると思います。
    04.gif
     
  10. 次へボタンを押します。
  11. 以下の画面が表示されたので、以下のように設定し完了ボタンを押しました。
    データベースの登録については、必要に応じて選択してください。
    05.gif
     
  12. 保存ダイアログが表示されるので、適当な名称をつけ保存してください。
    06.gif
     
  13. テーブルクリックしpublicをクリックすると作成済みであるt1テーブルを確認することができます。
    07.gif
     
  14. テーブルt1をダブルクリックすると以下のようにテーブル内容が表示されます。
    08.gif

あとは、データを入力したり削除したりテーブルのデザインができるようになります。
以上、LibreOffice BaseからPostgreSQLに接続する方法でした。


添付ファイル: file01.gif 723件 [詳細] file02.gif 881件 [詳細] file03.gif 1088件 [詳細] file04.gif 771件 [詳細] file05.gif 844件 [詳細] file06.gif 738件 [詳細] file07.gif 814件 [詳細] file08.gif 707件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:08:00