【Linux】RedHat系とDebian系のPostgreSQLの違いについて
今回はRedHat系のLinuxとDebian系のLinuxのPostgreSQLの、コマンドとディレクトリの違いについて説明していきます。
使用するPostgreSQLのバージョンは16になります。
目次
インストールコマンド
RedHat
dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-centos16-16-2.noarch.rpm
dnf install -y postgresql16-server
Debian
apt -y install postgresql-16
RedHat系とDebian系ではパッケージの管理システムが違うため、インストールに使用するコマンドも違うものになります。
各種ディレクトリ
RedHat
ディレクトリ | 内容 |
---|---|
/var/lib/pgsql/ | postgresユーザーのホームディレクトリ |
/var/lib/pgsql/data/ | デフォルトのデータベースクラスタのディレクトリ |
/usr/pgsql-16 | PostgreSQL16のインストール先 |
Debian
ディレクトリ | 内容 |
---|---|
/var/lib/postgresql/ | postgresユーザーのホームディレクトリ |
/var/lib/postgresql/16/main | デフォルトのデータベースクラスタのディレクトリ |
/etc/postgresql/16/main | デフォルトのデータベースクラスタ用の設定ファイルのディレクトリ |
/usr/lib/postgresql/16 | PostgreSQL16のインストール先 |
RedHat系とDebian系ではディレクトリの構成が違います。基本的にRedHat系ではディレクトリ名にpgsqlというものを使っていますが、Debian系ではpostgresqlになっています。
また、RedHat系ではデータベースクラスタのディレクトリ内に設定ファイルも保存しているのに対し、Debian系では設定ファイル用に別のディレクトリが用意されています。
起動・終了コマンド
RedHat
コマンド | 機能 |
---|---|
systemctl start postgresql | PostgreSQLサービスの起動 |
systemctl stop postgresql | PostgreSQLサービスの終了 |
initdb | データベースクラスタの作成 |
pg_ctl start | データベースクラスタを指定して起動 |
pg_ctl stop | データベースクラスタを指定して停止 |
Debian
コマンド | 機能 |
---|---|
systemctl start postgresql | PostgreSQLサービスの起動 |
systemctl stop postgresql | PostgreSQLサービスの終了 |
pg_createcluster 16 main | データベースクラスタの作成 |
pg_ctlcluster 16 main start | データベースクラスタを指定して起動 |
pg_ctlcluster 16 main stop | データベースクラスタを指定して停止 |
起動や終了に関するコマンドはsystemd関連のもの以外は違うコマンドを使用します。
Debian系のPostgreSQLはRedHat系のPostgreSQLで使われているpg_ctl start等も一応使用可能で、
/usr/lib/postgresql/16/bin/pg_ctl startのような形でPostgreSQLのインストール先のbinディレクトリを指定したり、.bash_profileでPATHを通したりすればRedHat系のようにコマンドを使用することが出来ます。
ただし、Debian用に用意されているコマンドの方が複数のデータベースクラスタの管理をしやすくされていたりするので、基本的にはあえてRHEL用のコマンドを使用する必要はありません。
また、Debian系のPostgreSQLはsystemctl start postgresql@16-mainのようなコマンドでデータベースクラスタをsystemdで起動することも出来ます。
尚、データベースの接続コマンドや接続後の操作に関してはRedHat系、Debian共に違いはなく、セットアップが終わった後はどちらも同じ様に使用することができます。
終わりに
テスト環境のUbuntuにPostgreSQLを使い始めた際、
- とりあえずinitdbをしようとしたら通らない
- データベースの保存先のディレクトリを見たら設定ファイルが見つからない
といった箇所で少し困惑したので、ディレクトリ周りとコマンド周りに関してまとめてみました。
別体系のLinuxにPostgreSQLを導入してみようと考えている方は参考にしてみてください。
このカテゴリの最新記事
2024.04.03
2024.01.17
2024.07.23
2024.02.14