トップページ -> インストール,設定,利用 -> PostgreSQL -> PostgreSQL 12, pgAdmin 4, PostGIS 3 のインストール(Ubuntu, Debian 上)
[サイトマップへ], [サイト内検索へ]

PostgreSQL 12, pgAdmin 4, PostGIS 3 のインストール(Ubuntu, Debian 上)

Ubuntu もしくは Debian に,Postgres 12, pgAdmin 4 のインストールを行う. Postgres の主要コマンドや,pgAdmin 4 の主要機能を動かしてみる.

※ インストールは,https://wiki.postgresql.org/wiki/Apt に記載の手順に従う.

【このページの目次】

  1. 前準備
  2. PostgreSQL 12, pgAdmin 4, PostGIS 3 のインストール(Ubuntu, Debian 上)
  3. インストール後の確認
  4. PostgreSQL を使ってみる
  5. pgAdmin 4 を使ってみる

サイト内の関連ページ: データベースのことを含む各種教材は別ページにまとめている.

参考Webページ:


前準備

OS のシステム更新

Ubuntu, Debian で OS のシステム更新を行うときは, 端末で,次のコマンドを実行.

sudo apt update
sudo apt -yV upgrade
sudo /sbin/shutdown -r now

PostgreSQL 12, pgAdmin 4, PostGIS 3 のインストール(Ubuntu, Debian 上)

https://wiki.postgresql.org/wiki/Apt に記載の手順に従う.

  1. レポジトリキーのインストール

    sudo apt -yV install curl ca-certificates gnupg
    curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
    
  2. パッケージリストの取得
    sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
    

    [image]
  3. パッケージ情報の更新
    sudo apt -y update
    
  4. インストール
    sudo apt -yV install postgresql-12 pgadmin4 postgresql-12-postgis-3
    
  5. インストール直後なので,確認のため,サーバを手動で起動して停止してみて,エラーメッセージが出ないことを確認する

    sudo service postgresql start 
    sudo service postgresql stop
    

インストール後の確認

  1. postgres 用アカウントが存在することの確認

    Ubuntu や Fedora で,パッケージを使って PostgreSQL をインストールすると,Postgres 用アカウント(ユーザ名は「postgres」)が自動的に作成される.

    cat /etc/passwd | grep postgres
    

    ※ 「x」は no password という意味(パスワードがないという意味ではない)

    [image]

PostgreSQL を使ってみる

事前に決めておく事項

Postgres のデータベースディレクトリの作成

ここでは,データベースディレクトリは /var/lib/postgresql/data とする.好きに決めていいが,日本語を含まないディレクトリ名にすること.

sudo mkdir /var/lib/postgresql/data
sudo chown -R postgres:postgres /var/lib/postgresql/data

[image]

※ Fedora の場合には,インストール時に,データベースディレクトリ/var/lib/pgsql/data が自動的に作成されるようである. まずデータベースディレクトリが存在するかの確認を行い,存在しなければ,酒造で作成すること.

sudo ls -la /var/lib/pgsql/data

データベースファイルの作成

次のコマンドを実行.このときデータベースサーバの起動手順が表示されるので確認すること.

sudo su - postgres
/usr/lib/postgresql/12/bin/initdb --encoding='UTF-8' -D /var/lib/postgresql/data

[image]

「sudo su - postgres」は,postgres ユーザに切り替える操作である. 元のユーザに戻るには「exit」と操作する.

  • 元のユーザに戻るには,「exit」と操作する.

    exit
    

    [image]

    Postgres のサンプルデータベースの作成と権限の設定

    1. データベースサーバの起動

      sudo su - postgres
      /usr/lib/postgresql/12/bin/pg_ctl -D /var/lib/postgresql/data start
      

      [image]
    2. データベース論理名と,オーナと,文字コード(エンコーディング)を指定して createdb コマンドを起動

      PostgreSQL の場合,データベースを作成するには, createdb コマンドを使用する.

      文字コード(エンコーディング)UTF8で, データベース論理名 testdb のデータベースを作成したいときは, 次のように操作する.

      createdb -U postgres -E UTF8 testdb
      

      [image]
      • -U postgres : 接続に使用するユーザ.PostgreSQL データベース管理者 (postgres) を指定する.

        ※ 権限上,(基本は)PostgreSQL データベース管理者 (postgres) だけがデータベースを作成できるため.

      • testdb : データベース論理名

      createdb コマンドの詳細は, http://www.postgresql.jp/document/pg833doc/html/app-createdb.html

      文字セットの詳細は, http://www.postgresql.jp/document/pg833doc/html/multibyte.html#MULTIBYTE-charset-SUPPORTED

    3. エラーメッセージが出ないことを確認

      [image]
    4. 確認のため,データベースの一覧表示を行なってみる

      PostgreSQL の場合,データベースの一覧表示は,「psql -l」で行う.

      psql -U postgres -l
      

      [image]
    5. 元のユーザに戻るには,「exit」と操作する.

      exit
      

      [image]

    テーブルの定義と作成

    1. PostgreSQL サーバへの接続

      sudo su - postgres
      psql -U postgres -d testdb
      

      [image]
    2. SQL を用いたテーブル定義

      CREATE TABLE order_records (
          id            INTEGER  PRIMARY KEY NOT NULL,
          year          INTEGER  NOT NULL CHECK ( year > 2008 ),
          month         INTEGER  NOT NULL CHECK ( month >= 1 AND month <= 12 ),
          day           INTEGER  NOT NULL CHECK ( day >= 1 AND day <= 31 ),
          customer_name TEXT  NOT NULL,
          product_name  TEXT  NOT NULL,
          unit_price    REAL     NOT NULL CHECK ( unit_price > 0 ),
          qty           INTEGER  NOT NULL DEFAULT 1 CHECK ( qty > 0 ),
          created_at    TIMESTAMP NOT NULL,
          updated_at    TIMESTAMP,
          CHECK ( ( unit_price * qty ) < 200000 ) );
      

      [image]
    3. SQL を用いたテーブル生成

      BEGIN TRANSACTION;
      INSERT INTO order_records VALUES( 1, 2019, 10, 26,  'kaneko', 'orange A', 1.2, 10, current_timestamp, NULL );
      INSERT INTO order_records (id, year, month, day, customer_name, product_name, unit_price, qty, created_at) VALUES( 2, 2019, 10, 26,  'miyamoto', 'Apple M',  2.5, 2, current_timestamp );
      INSERT INTO order_records (id, year, month, day, customer_name, product_name, unit_price, qty, created_at) VALUES( 3, 2019, 10, 27,  'kaneko',   'orange B', 1.2, 8, current_timestamp );
      INSERT INTO order_records (id, year, month, day, customer_name, product_name, unit_price, created_at) VALUES( 4, 2019, 10, 28,  'miyamoto',   'Apple L', 3, current_timestamp );
      COMMIT;
      

      [image]
    4. 簡単な SQL 問い合わせ

      SELECT * FROM order_records; 
      

      [image]
    5. SQL 問い合わせ結果の確認

      [image]
    6. psql を終了したいときは,「\q」と操作する.

      \q
      

      [image]

    pgAdmin 4 を使ってみる

    1. 端末で「pgadmin4」を実行
    2. 初回起動時には,pgAdmin 用のマスターパスワードを設定

      [image]
    3. 「Add New Server」を選ぶ

      [image]

      まず,名前(name)を設定する.分りやすい名前に設定する.マシン名に一致させるティ用はない

      [image]

      次はマシン名(もしくはIPアドレス),接続のためのユーザ名(Username),パスワード(Password)を設定する

      [image]

      表示が変わるので確認する

      [image]
    4. ブラウザの画面で,展開することにより,データベースを確認できる

      [image]
    5. 右クリックメニューで,データベースの新規作成ができる.

      [image]
    6. データベースの右クリックメニューで,「Query Tool...」を選ぶと,SQLを実行できる.

      [image]

      [image]

    参考Webページ:


    本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

    問い合わせ先: 金子邦彦(かねこ くにひこ) [image]