PostgreSQLの読み方
PostgreSQLは,「ポストグレスキューエル」と読みます.「ポストグレ エスキューエル」とよく間違えられます.
インストール手順
Debian系
UbuntuやDebian, MX LinuxなどのDebian系のディストリビューションでは下記コマンドを利用します.
apt install postgresql
バージョンが確認できれば,インストール成功です.
psql --version
psql (PostgreSQL) 13.9 (Debian 13.9-0+deb11u1)
RHEL系
CentOSやRedHat (RHEL),Rocky LinuxなどのRHEL系のディストリビューションでは下記コマンドでインストールします.
yum install postgresql.x86_64 postgres-server.x86_64
postgresql-setup --initdb
インストールしたら,念のためサービスを再起動します.
systemctl restart postgresqal.service
ローカル環境で動作確認
サーバとして構築する前に,ローカル環境でデータベースにアクセスして,正常動作するかの確認を行います.
PostgreSQLをインストールすると,postgres
というユーザが作成されています.初期設定では,postgres
以外はPostgreSQLにアクセスできないため,アカウントをpostgres
に切り替えます.
su - postgres
データベース一覧を取得
インストール直後のデータベース一覧を取得します.
psql -l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3 rows)
インストール直後はpostgres
,template0
,template1
というデータベースが存在します.
これで,基本動作の確認は完了です.
データベースのサーバの構築
続いて,データベースサーバとして環境設定を行います.
サーバ側設定
まずはDBのアクセス権限があるユーザ(postgres
)でログインします.
su - postgres
次に,クライアントからアクセスするためにパスワードを設定します.your_passwordは適宜設定してください.
psql -c "ALTER USER postgres WITH PASSWORD 'your_password';"
新しくユーザを作成したい場合,次のコマンドを使用します.
psql -c "CREATE USER username WITH PASSWORD 'your_password';"
psql -c "CREATE DATABASE username;"
次に,クライアントからアクセス可能にするために,設定ファイルを変更します.
変更する設定ファイルはpostgresql.conf
とpg_hba.conf
です.設定ファイルは/etc/postgresql/13/main
に置かれています(MX Linux).
それぞれファイルのの役割は以下の通りです.
postgresql.conf
: PostgreSQL全体の設定ファイルpg_hba.conf
: 認証に関する設定ファイル
/etc/postgresql/13/main/postgresql.conf
...
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
#listen_addresses = 'localhost' # what IP address(es) to listen on;
listen_addresses = '*'
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432 # (change requires restart)
max_connections = 100 # (change requires restart)
#superuser_reserved_connections = 3 # (change requires restart)
unix_socket_directories = '/var/run/postgresql' # comma-separated list of directories
# (change requires restart)
#unix_socket_group = '' # (change requires restart)
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
# (change requires restart)
#bonjour = off # advertise server via Bonjour
# (change requires restart)
#bonjour_name = '' # defaults to the computer name
# (change requires restart)
...
9行目にlisten_addresses = '*'
を追加します.この行の意味はすべてのクライアントIPの接続を許可するということです.
ワイルドカード(’*’)の代わりに,指定のIPアドレスとすることで,接続元IPアドレスを制限することが出来ます.
/etc/postgresql/13/main/pg_hba.conf
...
# Database administrative login by Unix domain socket
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
#host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all peer
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
...
10行目をコメントアウト(もしくは削除)し,11行目を追加します.
ADDRESSを0.0.0.0/0
とすることで,すべての接続元からのアクセスを許可します.上記ファイルと同様に,環境に応じて適宜IP制限を指定してください.
接続可能データベースやユーザをall
としていますが,ここも適宜変更可能です.詳細はこちら.
設定ファイルを記述後にサービスを再起動します.
systemctl restart postgresql.service
これでサーバ側の設定は完了です.
クライアント設定
クライアントをインストール
PostgreSQLのクライアント環境を下記コマンドでインストールします.
apt install postgresql-client
psql
コマンドで,サーバにアクセスできるかを確認します.
下記のように表示されれば,問題ありません.
psql -U postgres -h <IP address> -l
Password for user postgres:
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3 rows)
データの保存場所
データ保存場所はシステム上です.より高速もしくは大容量なデータベースを作成するには保存場所を変更する必要があります.
データの保存場所を変更する方法については下記記事にまとめました.興味がある方はご覧ください.
まとめ
LinuxにPostgreSQLをインストールし,データベースサーバを構築する手順を記載しました.
コメント