アプリケーション開発ポータルサイト
ServerNote.NET
Amazon.co.jpでPC関連商品タイムセール開催中!
カテゴリー【PostgreSQLAmazon/AWS
Amazon Linux2にPostgreSQL11をインストール
POSTED BY
2023-10-24

Debian Linuxとは多少やりかたが異なっていたのでメモ。

パッケージインストール

amazon-linux-extras install postgresql11ではpsqlがインストールされるだけなので意味は無く、yumでserver/client/library全部インストールできるので不要である。

sudo yum install postgresql postgresql-server postgresql-devel postgresql-contrib libpq-devel

GEOGRAPY型を使いたい場合はPostGISも入れておく。

yum install postgis

初期化スクリプト実行

sudo postgresql-setup initdb

WARNING: using obsoleted argument syntax, try --help
WARNING: arguments transformed to: postgresql-setup --initdb --unit postgresql
 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

データディレクトリは/var/lib/pgsql/dataとなる。

設定ファイル例

sudo -s
cd /var/lib/pgsql/data
# バックアップ
cp -p pg_hba.conf pg_hba.conf.default
cp -p postgresql.conf postgresql.conf.default

postgresql.confUNIXドメインソケットのみを使う例/変更箇所抜粋

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
#port = 5432                            # (change requires restart)
max_connections = 256                   # (change requires restart)
unix_socket_directories = '/var/run/postgresql, /tmp'  # comma-separated list of directories
unix_socket_group = ''                  # (change requires restart)
unix_socket_permissions = 0777
shared_buffers = 512MB                  # min 128kB
temp_buffers = 24MB                     # min 800kB
work_mem = 12MB                         # min 64kB
max_stack_depth = 6MB                   # min 100kB
logging_collector = on                  # Enable capturing of stderr and csvlog
log_directory = 'pg_log'                        # directory where log files are written,
log_filename = 'postgresql-%Y%m%d.log'  # log file name pattern,
log_truncate_on_rotation = on           # If on, an existing log file with the
log_rotation_age = 1d                   # Automatic rotation of logfiles will
log_line_prefix = '%t %r:%u:%d '                # special values:
autovacuum = on                 # Enable autovacuum subprocess?  'on'

pg_hba.confUNIXドメイン含むローカルのみ許容例/変更箇所抜粋

local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

サーバー起動

sudo -s

systemctl status postgresql

systemctl start postgresql

systemctl enable postgresql # 自動起動設定

systemctl status postgresql

開発用ヘッダファイル

Debianでは/usr/include/postgresql/libpq-fe.hであったが、Amazon Linux2では/usr/include/libpq-fe.hと直下にあるので、ソースコードで#includeを書くとき気をつける。

以降、データベース作成等操作は【Debian】PostgreSQLを任意のデータディレクトリでinitdbし運用する方法【FreeBSD】などと同じようにできる。

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】