FreeBSD 14
Sponsored Link

PostgreSQL 15 : インストール2024/02/09

 
PostgreSQL をインストールして、データベースサーバーを構築します。
[1] PostgreSQL をインストールして起動します。
root@www:~ #
pkg install -y postgresql15-server
root@www:~ #
sysrc postgresql_enable="YES"

root@www:~ #
/usr/local/etc/rc.d/postgresql initdb

The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

.....
.....

root@www:~ #
service postgresql start

2024-02-09 15:40:37.963 JST [984] LOG: ending log output to stderr
2024-02-09 15:40:37.963 JST [984] HINT: Future log output will go to log destination "syslog".
[2] デフォルト設定では、ローカルホストからのみ接続可能となっています。
認証方式の詳細は公式ドキュメントを参照ください。
⇒ https://www.postgresql.jp/document/10/html/auth-pg-hba-conf.html
# ローカルホストをリスン

root@www:~ #
grep listen_addresses /var/db/postgres/data15/postgresql.conf

#listen_addresses = 'localhost' # what IP address(es) to listen on;
# 認証方式は変更する

root@www:~ #
cp -p /var/db/postgres/data15/pg_hba.conf /var/db/postgres/data15/pg_hba.conf.org

root@www:~ # cat > /var/db/postgres/data15/pg_hba.conf <<'EOF'
local   all             all                                     peer
host    all             all             127.0.0.1/32            ident
host    all             all             ::1/128                 ident
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            ident
host    replication     all             ::1/128                 ident
EOF 

root@www:~ #
service postgresql restart

[3] PostgreSQL 管理ユーザーで PostgreSQL ユーザーとデータベース追加します。
# OS ユーザー追加

root@www:~ #
pw useradd freebsd -m

root@www:~ #
passwd freebsd
# PostgreSQL ユーザー追加 (OS ユーザーと同名)

root@www:~ #
su - postgres

$
createuser freebsd

$
createdb testdb -O freebsd
# show users and databases

$
psql -c "select usename from pg_user;"
 usename
----------
 postgres
 freebsd
(2 rows)

$
psql -l
                                                   List of databases
   Name    |  Owner   | Encoding | Locale Provider | Collate |  Ctype  | ICU Locale | ICU Rules |   Access privileges
-----------+----------+----------+-----------------+---------+---------+------------+-----------+-----------------------
 postgres  | postgres | UTF8     | libc            | C.UTF-8 | C.UTF-8 |            |           |
 template0 | postgres | UTF8     | libc            | C.UTF-8 | C.UTF-8 |            |           | =c/postgres          +
           |          |          |                 |         |         |            |           | postgres=CTc/postgres
 template1 | postgres | UTF8     | libc            | C.UTF-8 | C.UTF-8 |            |           | =c/postgres          +
           |          |          |                 |         |         |            |           | postgres=CTc/postgres
 testdb    | freebsd  | UTF8     | libc            | C.UTF-8 | C.UTF-8 |            |           |
(4 rows)
[4] 新規追加したユーザーで PostgreSQL を利用する場合の基本操作です。
# テスト DB に接続

freebsd@www:~ $
psql testdb

psql (15.5)
Type "help" for help.

# ユーザーロール一覧を表示
testdb=> \du
                             List of roles
 Role name |                         Attributes
-----------+------------------------------------------------------------
 freebsd   |
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS

# データベース一覧を表示
testdb=> \l
                                                   List of databases
   Name    |  Owner   | Encoding | Locale Provider | Collate |  Ctype  | ICU Locale | ICU Rules |   Access privileges
-----------+----------+----------+-----------------+---------+---------+------------+-----------+-----------------------
 postgres  | postgres | UTF8     | libc            | C       | C.UTF-8 |            |           |
 template0 | postgres | UTF8     | libc            | C       | C.UTF-8 |            |           | =c/postgres          +
           |          |          |                 |         |         |            |           | postgres=CTc/postgres
 template1 | postgres | UTF8     | libc            | C       | C.UTF-8 |            |           | =c/postgres          +
           |          |          |                 |         |         |            |           | postgres=CTc/postgres
 testdb    | freebsd  | UTF8     | libc            | C       | C.UTF-8 |            |           |
(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 | freebsd
(1 row)

# テストテーブルにテストデータを挿入
testdb=> insert into test_table (no,name) values (01,'FreeBSD'); 
INSERT 0 1

# 確認
testdb=> select * from test_table; 
 no |  name
----+---------
  1 | FreeBSD
(1 row)

# テストテーブルを削除
testdb=> drop table test_table; 
DROP TABLE

testdb=> \dt 
Did not find any relations.

# exit する
testdb=> \q 

# テストデータベースを削除

freebsd@www:~ $
dropdb testdb

freebsd@www:~ $
psql -l

                                                   List of databases
   Name    |  Owner   | Encoding | Locale Provider | Collate |  Ctype  | ICU Locale | ICU Rules |   Access privileges
-----------+----------+----------+-----------------+---------+---------+------------+-----------+-----------------------
 postgres  | postgres | UTF8     | libc            | C       | C.UTF-8 |            |           |
 template0 | postgres | UTF8     | libc            | C       | C.UTF-8 |            |           | =c/postgres          +
           |          |          |                 |         |         |            |           | postgres=CTc/postgres
 template1 | postgres | UTF8     | libc            | C       | C.UTF-8 |            |           | =c/postgres          +
           |          |          |                 |         |         |            |           | postgres=CTc/postgres
(3 rows)
関連コンテンツ