今日はFedoraにPostgreSQLのデータベースをインストールする方法を紹介します。FedoraはLinuxのディストロの中でも安定性とソフトウェアが最新にそろっていることで知られています。Debian(Ubuntu)を使わない場合で、さらにキレイなデスクトップを使いたい方は是非Fedoraがお勧めです。またPostgreSQLはオープンソースで実際のプロダクションでも使用できるリレーショナルデータベースです。ぜひ活用してください。
Fedoraのバージョンの確認
では早速、Fedoraのバージョンを確認しましょう。
cat /etc/fedora-release #アウトプット Fedora release 35 (Thirty Five)
システムのアップデート
Postgresをインストールする前にシステムが最新のものになっているかを確認しましょう。
最後に再起動を忘れずに。
sudo dnf install -y bash-completion vim sudo dnf update -y #完了したら再起動 sudo reboot
PostgreSQL Yum Repositoryを追加
PostgresのリポジトリをFedoraのシステムに追加します。
Fedora 35: sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/F-35-x86_64/pgdg-fedora-repo-latest.noarch.rpm Fedora 34: sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/F-34-x86_64/pgdg-fedora-repo-latest.noarch.rpm Fedora 33: sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/F-33-x86_64/pgdg-fedora-repo-latest.noarch.rpm Fedora 32: sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/F-32-x86_64/pgdg-fedora-repo-latest.noarch.rpm Fedora 31: sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/F-31-x86_64/pgdg-fedora-repo-latest.noarch.rpm Fedora 30: https://download.postgresql.org/pub/repos/yum/reporpms/F-30-x86_64/pgdg-fedora-repo-latest.noarch.rpm
このコマンドを実行するとインストールをするか再度きかれるのでyを入力してエンターを押します。
PostgreSQL Server and Client packagesを追加
次にPostgreSQLのサーバーとクライアントパッケージを追加します。
sudo dnf install postgresql11-server postgresql11
これも本当にインストールしてよいか聞かれるのですべてにyで答えて進めます。
データベースのイニシャライズと自動スタート
では、データベースをイニシャライズし、OSの起動と同時にデータベースのサーバーも起動するように設定します。
sudo /usr/pgsql-11/bin/postgresql-11-setup initdb #アウトプット Initializing database ... OK sudo systemctl start postgresql-11 sudo systemctl enable postgresql-11
ここまでできたら、postgreSQLが間違いなく起動しているか確かめてみましょう。
systemctl status postgresql-11
問題ないですね。

PostgreSQLのコンフィグファイル
PostgreSQLのコンフィグファイルは下記のファイルパスにあります。
/var/lib/pgsql/11/data/postgresql.conf
ファイヤーウォールの設定
もしローカルホストではなくネットワークからPostgreSQLにアクセスをさせる場合はファイアウォールで許可させます。
sudo firewall-cmd --add-service=postgresql --permanent sudo firewall-cmd --reload
PostgreSQLへのリモートアクセスを許可
/var/lib/pgsql/11/data/postgresql.confのコンフィグファイルを編集してすべてのIPからのアクセスを許可できます。
sudo nano /var/lib/pgsql/11/data/postgresql.conf listen_addresses = '*'
PostgreSQLにリモートアクセスを許可させます。
sudo nano /var/lib/pgsql/11/data/pg_hba.conf # Accept from anywhere host all all 0.0.0.0/0 md5 # Accept from trusted subnet host all all 192.168.18.0/24 md5
PostgreSQLのサービスをリスタートさせてコンフィグファイルを再読み込みさせます。
sudo systemctl restart postgresql-11
PostgreSQLアドミンユーザーのパスワード
PostgreSQLにアドミン権限を与えます。
sudo su - postgres #ここにパスワードの部分に好きなパスワードを設定 psql -c "alter user postgres with password 'ここにパスワード'" #結果 ALTER ROLE
ではユーザーとデータベースを作成します。
createuser test_user createdb test_db -O test_user grant all privileges on database test_db to test_user; #ログインする psql -U test_user -h localhost -d test_db
もしcreatedb: could not connect to database template1: FATAL: Peer authentication failed for user “ユーザー名”のエラーが出た場合はpg_hba.confのコンフィグファイルでパスワードでデータベースを作成できるようにします。
sudo nano /var/lib/pgsql/11/data/pg_hba.conf #オリジナルがこれ # TYPE DATABASE USER ADDRESS METHOD local all all peer #これに変更 local all all md5 #PostgreSQLをリスタートします。 sudo systemctl restart postgresql-11
では作成したデータベースを見てみましょう。
psql -U ユーザー名(postgres) -l #-lがリストで表示するというフラグです。
ここでデータベースの所有者やDB名が確認できます。

では今日はここまでです。
お疲れ様でした。