LoginSignup
1
0

UbuntuにPostgresqlをインストール、ユーザー登録まで

Posted at

目的

UbuntuでPostgresqlサーバーをインストールし、任意のユーザにてアクセス可能とするまでの手順を記述します。

環境

項目 内容
ホストOS Windows11pro
VM VMware workstation 16 Player
ゲストOS Ubuntu22.04
postgresql ver14

1. 必要なaptパッケージのインストール

sudo apt update
sudo apt dist-upgrade -y
sudo apt autoremove -y
sudo apt install curl finger net-tools postgresql postgresql-client vim

便利なツール

PostgreSQL管理用ツール pgAdmin4

curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'
sudo apt install pgadmin4-desktop

2. OSユーザーの登録

OSのユーザーとpostgresqlでのユーザーがあり、混乱の原因となります。

PostgreSQLをインストールすると、OS上にpostgresというユーザーが自動的に作成されます。

finger postgres
Login: postgres       			Name: PostgreSQL administrator
Directory: /var/lib/postgresql      	Shell: /bin/bash
Never logged in.
No mail.
No Plan.

このOSユーザーにパスワードの設定が必要です。
任意のパスワードを設定します。

passwd postgres
新しい パスワード: 
新しい パスワードを再入力してください: 
passwd: パスワードは正しく更新されました

3.DBユーザーの登録

OSユーザーでPostgreSQLにログインします。

root@pc_name# su - postgres
postgres@pc_name$ psql
Password for user postgres: 
psql (14.11 (Ubuntu 14.11-0ubuntu0.22.04.1))
Type "help" for help.

postgres=# 

DBユーザーpostgresがデフォルトで作成されているので、このユーザーにパスワードを設定します。

postgres=# ALTER USER postgres with encrypted password '任意のパスワード';
ALTER ROLE

4.peer接続の解除

PostgreSQLはデフォルトでは、peer接続の設定になっています。
OSユーザーとDBユーザーが同じ場合、パスワード認証が省略される設定ですが、コマンドライン以外からのアクセスでは拒否されてしまいます。

以下のファイルを編集します。

vim /etc/postgresql/14/main/pg_hba.conf

...
# Database administrative login by Unix domain socket
local   all             postgres                                md5
...
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
...

5.PostgreSQL再起動

設定を反映させるためにサービスを再起動します。

root# /etc/init.d/postgresql restart
Restarting postgresql (via systemctl): postgresql.service.

6.アクセスの確認

OSのrootユーザーとしてDBユーザーpostgresでのアクセスを確認します。

root@pc_name# psql -U postgres
Password for user postgres: DBユーザーのパスワード
psql (14.11 (Ubuntu 14.11-0ubuntu0.22.04.1))
Type "help" for help.

postgres=#select * from pg_user;
 usename  | usesysid | usecreatedb | usesuper | userepl | usebypassrls |  passwd  | valuntil | useconfig 
----------+----------+-------------+----------+---------+--------------+----------+----------+-----------
 postgres |       10 | t           | t        | t       | t            | ******** |          | 
(1 row)

7.pgAdmin4でのアクセス

pgAdminをインストールした場合、GUIで確認ができます。
image.png

起動後画面
image.png

Object ExplorerでSeversを右クリックし、[Register]-[Server...]を選択します。
image.png

Register-Serverダイアログ
Generalタブで、Nameに識別しやすい名前を入力します。
image.png

Connectionタブで、以下の項目を入力

  • Host nem/address
  • Password(DBユーザーのパスワード)
    image.png

Saveを押して成功すると、以下の画面のように情報が見えるようになります。
image.png

Tableなどを作成した場合、ツリー上のSchemas以下に表示され、この中からTablesに作成したTableが表示されるようになります。右クリックメニュー[View/Edit Data]-[All Rows]を選ぶと、テーブル内のデータが表示されるようになります。

1
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
1
0