作成日:2022-09-29
windowsとlinuxにpostgresql14のインストールを行い、アプリを使用し、データベースを作成していきます。
postgresql 14をwindowsとlinuxにインストールし、外部からのアクセスを可能にする。
RDB(リレーショナルデータベース)です。データベースの代表はmysqlですが、商用可能、ライセンスが緩いのはpostgresqlなのでこちらを使用しました。
個人的にはmariadbも利用しているのですがpostgresqlの方が難しい気がします。
windowsのインストーラーがありますので次へをポチポチすれば問題ないと思います。
インストールが終わったので起動してみます
windowsキーを押して「psql」と入力するとSQL shell(psql)が表示されるので起動してください
その後コマンド入力画面が開くので値を入力します。今回のインストールでデフォルトから変更していないため、最後のパスワード以外は「Enter」キーでスキップします。
画像と同じようにpostgres=#と表示されれば、正常な動作、ログインまで完了しています。
almalinux9にpostgresql-14をインストールします。
インストール手順
基本的には公式通りの手順でインストールを行いました。 最新情報は公式にあるのでそこを確認する。
sudo dnf -y update
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf -qy module disable postgresql
sudo dnf install -y postgresql14-server
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14
初期化後はpostgresのアカウントが追加されているためこのアカウントでログインをする
sudo -u postgres psql
先ほどまで、ローカルからログインまで確認ができました。便利に構築したいため外部からのアクセスを許可させます。
外部アクセスが不要になればpg_hba.confとpostgresql.conf、ファイヤーウォールを元に戻しておいてください。
外部アクセスの許可手順
postgresqlにログインしアカウントを作成します。外部アクセスの場合はパスワードが必要になりますので必ず設定してください。
ユーザー名「userpiyo」とパスワード「hoge」は変更してください
sudo -u postgres psql
create role userpiyo with superuser createdb createrole login password 'hoge'
ちなみにローカルからのアクセスがpeerになっているのでpg_hba.confの部分を変更しないとパスワード設定しているユーザーではログインできません。
local all all peer
#変更後↓
# "local" is for Unix domain socket connections only
local all all scram-sha-256
pg_hba.confとpostgresql.confの二つのを修正します。configファイルは「/var/lib/pgsql/14/data」の中に入っています。
pg_hba.confを変更します。
どこに記述してもいいのですが分かりやすいところに記述してください。
今回は「# IPv6 local connections:」の下に記述しました。
vi /var/lib/pgsql/14/data/pg_hba.conf
# IPv6 local connections:
host all all ::1/128 scram-sha-256
#アクセスを許可するグローバルipまたはローカルipアドレスを設定します(111.111.111.111/32)
host all all 111.111.111.111/32 scram-sha-256
#/32は必要です。
postgresql.confを変更します。
vi /var/lib/pgsql/14/data/postgresql.conf
コメントアウトを取り除き アスタリスクに変更してください。
#59行目当たり
listen_addresses = '*'
ポート5432 tcp を解放します。 permanentを付けることでサーバ再起動しても解放された状態になります。付けないと逆にサーバーの再起動したらポートが閉じてしまいます。せっかくアクセスできたのに再起動したら繋がらなくなった時はこれが原因かも
firewall-cmd --zone=public --add-port=5432/tcp --permanent
postgresql14を再起動します。
systemctl restart postgresql-14.service
最初はコマンド操作はとっつきにくいのでGUIアプリで操作します。アプリはpgAdminを利用します。 windowsの場合は先ほどの手順でpostgresqlをインストールした場合は既にインストールされています。 インストールされてない場合はこちらからダウンロードしてください。
windowsキーを押して「pgadmin」と入力するとpgAdmin4が表示されるので起動します。 初回起動時マスターパスワードの設定を聞かれるので絶対に忘れないようにメモを取って設定を行います。このパスワードを忘れると今後かなり面倒な事になります。また、先ほどまでpostgresqlの設定を行いましたがこのパスワードとは全く関係ありません。ご注意ください。
postgresql14のサーバにpgAdminでアクセスするための設定を行います。
サーバーのip,port,データベースのテーブル,ユーザー名、パスワードを入力します
実際にデータベースを作成し、データを追加してみます。
データベース名を入力します
テーブルを追加しテーブル名を入力します
ここで必ずどれかをプライマリーキーに設定してください。 全てのテーブルを表示させます データー行を追加し、データを入力後、サーバに反映させます。
クエリーの書き方、追加削除等のコマンドを覚えるために、ここを見ることをおすすめします。
postgresqlの構築、操作について、遠隔で操作ができなかったり、pgAdminを使用して直観的にデーターを追加することができました。
コマンドを覚えるのは大変だけどソフトを使えば視覚的に確認ができ、テーブルデータも見やすいので導入して損はないです。
質問や、間違いがありましたら、お気軽にどうぞ
※お名前とコメントの内容を入力してください。
※全てこのブログ上に公表されます。
※許可なく管理者によって修正・削除する場合がございます。 詳しくはプライバシーポリシーを参照ください