ローイングファンのプログラミング日記

ボート競技やプログラミングについて書きます

Ubuntu18.04にPostgreSQL10.5をインストール

2020-11-07追記
WSL2 Ubuntu20.04にPostgreSQL13をインストールしたので記事を投稿した
WSL2上のUbuntu20.04にPostgreSQL13をインストール - ローイングファンのプログラミング日記
(追記終わり)

目次


はじめに

前につくったUbuntu環境にPostgreSQLをインストールした。
参考にしたページは次のとおり。
今回の環境に応じてそれぞれをアレンジしてインストールおよび設定をした。

インストールする際に参考にしたページ

PostgreSQL Home > Download > Linux Ubuntu
LINUX DOWNLOADS (UBUNTU)
https://www.postgresql.org/download/linux/ubuntu/

PostgreSQL Wiki
Apt
https://wiki.postgresql.org/wiki/Apt

WEB ARCH LABO
PostgreSQL 10 を Ubuntu 16.04 LTS にインストールする手順
https://weblabo.oscasierra.net/postgresql10-ubuntu1604-install/

設定の際に参考にしたページ

CentOS7.3にPostgreSQL9.6.3をインストールしてみた
https://qiita.com/uhooi/items/44ed9370740c7521dce4

PostgreSQLリポジトリを追加

PostgreSQLリポジトリを追加する。

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'


信頼キーの取得と追加。

$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -


Aptの更新とシステムのアップグレードをする。

$ sudo apt update
$ sudo apt upgrade


PostgreSQL10のインストール

PostgreSQL10とpgadmin4をインストールする。

$ sudo apt -y install postgresql-10 pgadmin4


自動起動の設定をする。

$ sudo systemctl enable postgresql


インストールできたか確認する。

$ psql --version

psql (PostgreSQL) 10.5 (Ubuntu 10.5-1.pgdg18.04+1)


成功。

ロール設定

このままだとデフォルトで用意されているpostgresユーザーでしか操作できない。
vagrantユーザーのロールをつくってvagrantユーザーでも操作できるようにする。
*この辺はよく理解できていない。要勉強。

PostgreSQLサーバーを起動してpsqlコマンドを試す。

$ sudo systemctl start postgresql
$ psql -l

psql: FATAL: role "vagrant" does not exist


やはりvagrantユーザーでは操作できない。

ロールをつくっていく。
まずpostgresユーザーでログインする。

$ sudo -u postgres psql

psql (10.5 (Ubuntu 10.5-1.pgdg18.04+1))
Type "help" for help.
postgres=#


ロールをつくる。

postgres=# create role vagrant with login createdb;

CREATE ROLE


postgresユーザーのパスワードを変更する。

postgres=# alter user postgres password 'postgres';

ALTER ROLE


ログアウトしてvagrantユーザーからpsqlコマンドがつかえるか試す。

postgres=# \q
$ psql -l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(3 rows)


操作できた。

サーバーを停止する。

$ sudo systemctl stop postgresql


今回の環境

ホストOS
macOS 10.13.6
Windows10

ゲストOS
Ubuntu18.04