PostgreSQL 15 : インストール2023/07/05 |
PostgreSQL をインストールして、データベースサーバーを構築します。
|
|
[1] | PostgreSQL をインストールして起動します。 |
root@www:~# apt -y install postgresql-15
|
[2] | デフォルト設定では、ローカルホストからのみ接続可能 且つ ローカル接続は [peer] 認証のみとなっています。 認証方式の詳細は公式ドキュメントを参照ください。 ⇒ https://www.postgresql.jp/document/10/html/auth-pg-hba-conf.html |
# ローカルホストをリスン root@www:~# grep listen_addresses /etc/postgresql/15/main/postgresql.conf #listen_addresses = 'localhost' # what IP address(es) to listen on; # 認証方式 root@www:~# grep -v -E "^#|^$" /etc/postgresql/15/main/pg_hba.conf local all postgres peer local all all peer host all all 127.0.0.1/32 scram-sha-256 host all all ::1/128 scram-sha-256 local replication all peer host replication all 127.0.0.1/32 scram-sha-256 host replication all ::1/128 scram-sha-256 |
[3] | [peer] 認証の場合、任意の PostgreSQL ユーザーを追加して利用するには、同名の OS ユーザーも必要になります。 |
# PostgreSQL 管理ユーザーで PostgreSQL ユーザーとデータベース追加 root@www:~# su - postgres postgres@www:~$ createuser debian postgres@www:~$ createdb testdb -O debian
# 確認 postgres@www:~$ psql -c "select usename from pg_user;"
usename ---------- postgres debian (2 rows)postgres@www:~$ psql -l
List of databases Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges -----------+----------+----------+-------------+-------------+------------+-----------------+----------------------- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres + | | | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres + | | | | | | | postgres=CTc/postgres testdb | debian | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | (4 rows) |
[4] | 新規追加したユーザーで PostgreSQL を利用する場合の基本操作です。 |
# テスト DB に接続 debian@www:~$ psql testdb psql (15.3 (Debian 15.3-0+deb12u1)) Type "help" for help. # ユーザーロール一覧を表示 testdb=> \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- debian | | {} postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} # データベース一覧を表示 testdb=> \l List of databases Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges -----------+----------+----------+-------------+-------------+------------+-----------------+----------------------- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres + | | | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres + | | | | | | | postgres=CTc/postgres testdb | debian | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | (4 rows) # テストテーブルを作成 testdb=> create table test_table (no int, name text); CREATE TABLE # テーブル一覧を表示 testdb=> \dt List of relations Schema | Name | Type | Owner --------+------------+-------+-------- public | test_table | table | debian (1 row) # テストテーブルにテストデータを挿入 testdb=> insert into test_table (no,name) values (01,'debian'); INSERT 0 1 # 確認 testdb=> select * from test_table; no | name ----+-------- 1 | debian (1 row) # テストテーブルを削除 testdb=> drop table test_table; DROP TABLE testdb=> \dt Did not find any relations. # exit する testdb=> \q # テストデータベースを削除 debian@www:~$ dropdb testdb debian@www:~$ psql -l List of databases Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges -----------+----------+----------+-------------+-------------+------------+-----------------+----------------------- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres + | | | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres + | | | | | | | postgres=CTc/postgres (3 rows) |
Sponsored Link |