Postgres



Sitemap | Profile | タグ一覧
最近の更新
ドライランのありがたみを改めて知る
2024/04/04
伊豆半島
2024/03/31
お出かけチェックリスト
2024/03/29
Ruby
2024/03/27
Kubernetes
2024/03/22
音楽データをDisplayAudioで聞く
2024/03/09
Redmine
2024/02/05
git
2024/02/02
経済
2024/01/08
どうする家康
2023/12/17
MX-Linux
2023/11/06
國體関連学-休学のご連絡
2023/08/13
Debian
2023/08/02
CentOS
2023/06/13
Dell-XPS13
2023/05/23
ベルト
2023/05/18
SourceForge
2023/04/17
確定申告
2023/02/19
さらば「まぐまぐ」
2023/01/09
風猷縄学
2022/11/23


[-] 1. Convention

  1. shell のプロンプト
    $
  2. psql のプロンプト
    psql#

[-] 2. Tips

[-] 2.1. 9.1 へのリモートからの接続

端的には、/etc/postgresql/9.1/main/postgresql.conf の listen_addresses を、 '*' とするか IP を追加する必要があった。

http://www.postgresql.jp/document/9.1/html/runtime-config-connection.html によると、以下の違いがある:

  • pg_hba.conf で行うのはクライアント側のきめ細かい制御
  • listen_addresses はインタフェース単位の制御

[-] 2.2. pg_hba.conf の編集

Postgres をインストール後、まず(僕の場合)やるのが、OS認証を止めて Postgresユーザによるパスワード認証に切り替えること:

$ sudo vi /etc/postgresql/8.4/main/pg_hba.conf 
  ...
#local   all         all                               ident
local   all         all                               md5
  ...
$ sudo service postgresql restart     # 再起動

[-] 2.3. ユーザ追加

今まで user=postgres で作業してきた。[MYNAME] にもアクセスできるようにする。

$ sudo -u postgres createuser --interactive [MYNAME]  # >= v9.2
$ sudo -u postgres createuser [MYNAME]                # <= v9.1

[-] 2.4. ユーザパスワード変更

$ sudo -u postgres psql
psql# alter user [MYNAME] with password '********';

[-] 2.5. ユーザ一覧

psql# SELECT * FROM pg_shadow;

[-] 2.6. create DB

$ createdb mydb

[-] 2.7. sample DB

$ cd src/tutorial

[-] 2.8. PSQL の使い方

[-] 2.8.1. 起動

$ psql mydb

[-] 2.8.2. file の実行

psql#  \i SQLfile

[-] 2.8.3. table 情報の表示

psql# \d            # テーブル一覧
psql# \d tablename  # テーブル定義

[-] 2.8.4. session(接続ユーザ数)

psql# select procpid || ' (' || usename || ' using ' || datname || ')' from pg_stat_activity order by procpid,usename,datname;

[-] 2.9. 権限

ユーザ MY_ACCOUNT に DB 全体のアクセス権限を付与:

psql# grant all on database memberportal_db_user to MY_ACCOUNT;

[-] 3. Install

[-] 3.1. 9.0.4 Install

方針:

  • Ubuntu 11.04 ではまだパッケージがないので野良ビルドする。
  • Postgres8 と共存させるための作業:
    • ディレクトリを変える: /home/pg/postgresql-9.0.4
    • ポートを変える(後述)
  1. task
    $ sudo mkdir /home/pg/
    $ umask 022
    $ ./configure --prefix=/home/pg/postgresql-9.0.4
    $ make                                    # 数分かかる
    $ sudo make install
  2. user に write 権限が残っていたので消す
    $ sudo find /home/pg/postgresql-9.0.4 -exec chmod u-w {} \;
  3. initdb
    $ cd /home/pg/postgresql-9.0.4
    $ sudo mkdir data
    $ sudo chown postgres:postgres data
    $ sudo -u postgres bin/initdb -D /home/pg/postgresql-9.0.4/data
  4. config
    1. ポート変更
      $ sudo vi data/postgresql.conf
      ...
      port = 15432       # pg8 と衝突しないように変えておく。
      ...
    2. ユーザ認証: Ubuntu の設定と異なりソースからビルドしたものは認証が 甘いので下記に変更:
      local   all             postgres                                ident
      local   all             all                                     md5
      host    all             all             127.0.0.1/32            md5
      host    all             all             ::1/128                 md5
  5. サーバ起動: 一時的なものなので /etc/rc*.d/ への設定は略:
    $ sudo -u postgres sh -c 'bin/postgres -D /home/pg/postgresql-9.0.4/data >log/log 2>&1'

. テストDBの作成とアクセス

$ sudo -u postgres bin/createdb -p 15432 test
$ sudo -u postgres bin/psql -p 15432 test

[-] 3.2. 7.3.3 Install

2003-06-15 v7.3.3 Install Memo

  1. build
    $ umask 022
    $ ./configure --prefix=/opt/postgres
    $ make      # 約5分程で終了
    # su
    # umask 222
    # make install
  2. user に write 権限が残っていたので消す
    # cd /opt/postgres
    # find . -exec chmod u-w {} \;
  3. initdb
    # mkdir -p /var/opt/postgres
    # cd /var/opt
    # chown postgres:postgres postgres
    # su postgres
    $ /opt/postgres/bin/initdb -d /var/opt/postgres/data
  4. SysV 起動スクリプト /opt/nike/sbin/postgres に /opt/postgres 用を作成したので、 これを /etc/rc.d/rci.d (i=0..6)にセットする。下記は一例 (runlevel 2..5 で起動し、6, 0, 1 では停止する):
    # cd /etc/rc.d/init.d
    # (cd ../rc0.d; ln -s /opt/nike/sbin/postgres K19postgres)
    # (cd ../rc1.d; ln -s /opt/nike/sbin/postgres K19postgres)
    # (cd ../rc2.d; ln -s /opt/nike/sbin/postgres S81postgres)
    # (cd ../rc3.d; ln -s /opt/nike/sbin/postgres S81postgres)
    # (cd ../rc4.d; ln -s /opt/nike/sbin/postgres S81postgres)
    # (cd ../rc5.d; ln -s /opt/nike/sbin/postgres S81postgres)
    # (cd ../rc6.d; ln -s /opt/nike/sbin/postgres K19postgres)





Generated by juli 2.3.2