- 関連記事
環境
# cat /etc/redhat-release; arch; locale | head -n1; users
CentOS Linux release 7.6.1810 (Core)
x86_64
LANG=ja_JP.utf8
root root
段取り
root
ユーザアカウントでインストールを行い、それによって自動生成されるpostgres
ユーザアカウントで設定と動作テストを行う。
- 18.1. PostgreSQLユーザアカウント: JPUG
インストール
インストール済みのPostgreSQLがあれば削除
# yum list installed | grep postgres
# yum remove postgresql postgresql-libs postgresql-server
# userdel -r postgres
yum
リポジトリ設定をインストール
# rpm -ivh https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
PostgreSQL10をインストール
# yum install postgresql10 postgresql10-libs postgresql10-server
...
完了しました!
# psql --version
psql (PostgreSQL) 10.6
- psql: JPUG
設定と動作テスト
データベースサーバ自動起動設定
# systemctl enable postgresql-10.service
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-10.service to /usr/lib/systemd/system/postgresql-10.service.
# systemctl list-unit-files -t service | grep postgres
postgresql-10.service enabled
postgres
ユーザアカウントが登録済みか確認
# cut -d: -f1 /etc/passwd | grep postgres
postgres
postgres
ユーザアカウントにログイン
# su - postgres
環境変数
$ vim -c 'start|:set number|:2' ~/.bash_profile
~/.bash_profile
- PGDATA=/var/lib/pgsql/10/data
+ PGCLUSTER=10/data
+ PGHOME=/usr/pgsql-${PGCLUSTER%%\/*}
+ export PATH=$PGHOME/bin:$PATH
+ export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
+ export MANPATH=$PGHOME/share/man:$MANPATH
+ PGDATA=/var/lib/pgsql/$PGCLUSTER
-
(2行目)を+
に置き換え、[ESC]キー→:wq
で保存・終了。
- 16.5. インストール後の設定作業: JPUG
設定を反映
$ . ~/.bash_profile
$ printenv PGDATA
/var/lib/pgsql/10/data
データベースクラスタを初期化
$ initdb --no-locale -D "$PGDATA"
-
--no-locale
オプション: ロケールを使用しない(推奨) -
18.2. データベースクラスタの作成: JPUG
- initdb: JPUG
データベースサーバを起動し、現行のデータベースクラスタを確認
$ pg_ctl start
...
サーバ起動完了
$ psql -l
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権限
-----------+----------+------------------+----------+-------------------+-----------------------
postgres | postgres | SQL_ASCII | C | C |
template0 | postgres | SQL_ASCII | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | SQL_ASCII | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
(3 行)
$ ls "$PGDATA"
PG_VERSION pg_commit_ts pg_multixact pg_stat pg_wal postmaster.pid
base pg_dynshmem pg_notify pg_stat_tmp pg_xact
current_logfiles pg_hba.conf pg_replslot pg_subtrans postgresql.auto.conf
global pg_ident.conf pg_serial pg_tblspc postgresql.conf
log pg_logical pg_snapshots pg_twophase postmaster.opts
-
17.3. データベースサーバの起動: JPUG
- pg_ctl: JPUG
- 22.3. テンプレートデータベース: JPUG
- 66.1. データベースファイルのレイアウト: JPUG
Hello, World! 印字テスト
スクリプトなし
$ psql -t -A -c "SELECT 'Hello, World! '"
Hello, World!
スクリプトあり
$ vim -c 'start|:set number' ~/hello.sql
~/hello.sql
-- -*- mode: sql; sql-product: postgres; -*-
SELECT 'Hello, World!';
上記の通り入力し、[ESC]キー→:wq
で保存・終了。
パターン1
$ psql -t -A < ~/hello.sql
Hello, World!
パターン2
$ psql -t -A -f ~/hello.sql
Hello, World!
ログアウト
$ logout
参考
-
日本PostgreSQLユーザ会(JPUG)
- PostgreSQL 10.5文書: JPUG
-
PostgreSQL 本家(英語)
- PostgreSQL 10.6 Documentation: ポスグレ本家(英語)