0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Raspberry Pi Zero 2 W にPostgreSQLをインストールしてpgAdmin4の接続先設定まで

Last updated at Posted at 2025-01-04

はじめに

Raspberry Pi Zero2 W に PostgreSQL をインストールし、データベースとスキーマ、テーブルを作成するところまでを備忘として残したものです。
使用したのは32bit版のRaspberry Pi OS で、通常通りMicroSD(32GB)に書き込んで使用しています。扱うデータ量もそう多くない想定なので、外付けSSDは使用していません。

目次

手順としては、下記を順に実行して完成です。

  1. PostgreSQL のインストール
  2. PostgreSQL ユーザーの作成
  3. データベースの作成
  4. 認証設定
  5. pgAdminの設定

1. PostgreSQL のインストール

まず、最新のパッケージリストを更新し、PostgreSQL をインストールします。

sudo apt update
sudo apt-get install postgresql

インストールが完了したら、postgresユーザーが作成され、psqlコマンドが使用できるようになります。まずはLinuxユーザーのほうのパスワードを設定しておきます。

sudo passwd postgres

2. PostgreSQL ユーザーの作成

Linux上で既に使用しているユーザー(名)をPostgreSQLでもそのまま使用したい場合でも、同じユーザ名で作成しておく必要があります。
パスワードも同時に設定しておく。
-P オプションを指定することで、コマンド実行時にパスワードの入力が求められます。

su - postgres
createuser -P ユーザー名

※PostgreSQLでは、基本的にすべて小文字で設定してしまうのが良いです。大文字を使用する場合、毎回ダブルコーテーションで括る必要があるため面倒です。

3. データベースの作成

postgresユーザーのまま実行します。

createdb データベース名

作成したデータベースに接続します。

psql データベース名

無事に接続できれば、コンソール上でSQLを実行することができます。

-- 登録済みのユーザ
SELECT rolname from pg_roles;
-- postgresユーザの(DB)パスワード設定
ALTER USER postgres WITH PASSWORD '新しいパスワード';

4. 認証設定

このままだと、PostgreSQL上でのユーザーとLinux上でのユーザー名が一致していないとデータベースに接続することができないうえ、pgAdminをインストールしたクライアントからの接続を受けることができないため、設定ファイルを編集します。
postgresユーザー、または管理者権限で編集を行います。

/etc/postgresql/15/main/pg_hba.conf
「"local" is for Unix domain socket connections only」のMETHODをmd5に変更する。

# DO NOT DISABLE!
# If you change this first entry you will need to make sure that the
# database superuser can access the database using some other method.
# Noninteractive access to all databases is required during automatic
# maintenance (custom daily cronjobs, replication, and similar tasks).
#
# 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                                     md5

同じファイルに対して、ADDRESS 「192.168.0.0/24」の行を追加します。(md5で)

# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             192.168.0.0/24          md5

この設定により、すべてのローカルネットワークからの接続を受け付けるようになります。
セキュリティ上問題がある場合は具体的にIPアドレスを絞るなど、検討が必要になるが自宅でなんとなく使えればいいかなくらいの感覚なら、このまま設定するのがよいかと。

/etc/postgresql/15/main/postgresql.conf
アクセス自体の許可を設定します。
「listen_addresses」の値を変更します。

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'		# what IP address(es) to listen on;

すべての変更を保存したら再起動します。

sudo service postgresql restart

5. pgAdminの設定

pgAdminをインストールしましょう。(手順は割愛)

インストール後、pgAdminにてサーバーの追加を行います。
[オブジェクトエクスプローラ] にて、サーバアイコンを右クリックし、[サーバーの登録] をクリックする。

・ホスト名/アドレス:ラズパイのIPアドレス
・管理用データベース:上手順で作成した"データベース名"
・パスワード:設定する
・パスワードを保存:チェックする(面倒なので)

image.png

接続できてしまえば、スキーマの追加やテーブルの追加は、GUIで直感的に(...)できます。
接続するユーザーとデータベースの組み合わせには気を付けましょう。(忘れてCREATEしようとして権限がない、と怒られがち)

インストールの手順は、下記サイト様が非常に参考になりました。
https://raspi.taneyats.com/entry/install-postgresql

以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?