この記事でできるようになること
- Ubuntu に PostgreSQL をインストールできる
- データベースとユーザーを作れる
- テーブルを作ってデータを入れられる
- SELECT でデータを確認できる
この記事のゴールは、「Ubuntuが本物のデータベースサーバーとして動いた!」という状態を作ることです。Rails とはまだ接続しません。
1. PostgreSQL をインストール
Ubuntu のターミナルで次を実行します。
sudo apt update
sudo apt install -y postgresql postgresql-contrib
インストール後、サービスが動いているか確認します。
sudo systemctl status postgresqlActive: active (exited) や
active (running) と表示されていればOKです。

2. PostgreSQLにログインする
まずは PostgreSQL を操作するための準備をします。
① postgresユーザーに切り替える
次のコマンドを入力してください。
sudo -i -u postgres これは「postgres」というPostgreSQL専用ユーザーに切り替えるコマンドです。
実行すると、表示が次のように変わります。
postgres@DESKTOP-xxxx:~$
この表示になれば成功です。
まだデータベースの中には入っていません。
② PostgreSQLの中に入る
次にこのコマンドを入力します。
psql成功すると、次のような表示になります。
postgres=#
この 「=#」が出たら、データベースの中に入れた合図です。
ここからSQLコマンドが使えるようになります。
3. データベースとユーザーを作る
※ ここからは postgres=# と表示されている状態(psqlの中)で実行します。
今回は次の名前で作ります。
- ユーザー名:railsuser
- データベース名:railsdb
① ユーザーを作る
次のコマンドを入力してください。
CREATE USER railsuser WITH PASSWORD 'password'; これは「railsuser」という名前のログイン用ユーザーを作るコマンドです。
実行後に CREATE ROLE と表示されれば成功です。

② データベースを作る
続いて次を入力します。
CREATE DATABASE railsdb OWNER railsuser;
これは「railsdb」というデータベースを作り、
その管理者を「railsuser」にする、という意味です。
CREATE DATABASE と表示されれば成功です。
③ 作成できたか確認する(データベース一覧)
\l
これは「データベースの一覧を見る」コマンドです。
一覧の中に railsdb があれば成功です。
【注意】\l を実行したら固まったように見える場合
\l を実行すると、次のような表示になり、
(4 rows)
~
~
~
(END)画面が止まったように見えることがあります。
これはエラーではありません。
「ページャー(less)」という表示モードに入っているだけです。
PostgreSQLは表示内容が画面に収まりきらない場合、
自動的にスクロール表示モードになります。
■ 抜ける方法
キーボードで次を押してください。
qすると、元の postgres=# の画面に戻ります。
■ 毎回この表示を出さない方法(任意)
psqlの中で次を入力すると、ページャーを無効にできます。
\pset pager off
これを設定すると、今後は (END) 表示が出なくなります。
固まったわけではないので、慌てなくて大丈夫です 😊
④ 作成できたか確認する(ユーザー一覧)
\du
これは「ユーザーの一覧を見る」コマンドです。
一覧の中に railsuser があれば成功です。
4. PostgreSQLを抜ける
まずはデータベースの中(psql)を終了します。
\q
入力すると postgres@DESKTOP… の表示に戻ります。
これはLinuxの画面に戻ったという意味です。
次に postgres ユーザーからも抜けます。
exit
表示が sumiox@DESKTOP… に戻ればOKです。
5. 新しいユーザーでログイン
今度は作ったユーザーでデータベースに入ります。
psql -U railsuser -d railsdb
パスワードを聞かれたら、先ほど設定した password を入力してください。
railsdb=> と表示されれば成功です。
【エラー対処】Peer authentication failed が表示された場合
次のコマンドでログインしようとしたとき、
psql -U railsuser -d railsdbこのようなエラーが出ることがあります。
FATAL: Peer authentication failed for user "railsuser" これは失敗ではありません。
Ubuntu の初期設定による認証方式が原因です。
■ なぜ起きるの?
Ubuntu の PostgreSQL は初期状態で 「peer認証」 という方式を使っています。
peer認証とは、
「Linuxにログインしているユーザー名」と
「PostgreSQLのユーザー名」が同じ場合のみ接続を許可する仕組みです。
今回の例では:
- Linuxユーザー:sumiox
- PostgreSQLユーザー:railsuser
名前が違うため、接続が拒否されます。
■ 解決方法
次のように -h localhost を付けて接続してください。
psql -U railsuser -d railsdb -h localhostこれでパスワード認証に切り替わります。
パスワード入力後、次のように表示されれば成功です。
railsdb=>
これは railsuser として railsdb にログイン成功 という意味です。
このエラーは初心者が必ず通る道なので、焦らなくて大丈夫です 😊
6. テーブルを作る
※ ここからは railsdb=> と表示されている状態で実行します。
本を管理するための books テーブルを作ります。
CREATE TABLE books (
id SERIAL PRIMARY KEY,
title TEXT,
author TEXT
);
成功すると CREATE TABLE と表示されます。
7. データを入れる
books テーブルにデータを登録します。
INSERT INTO books (title, author)
VALUES ('Ruby入門', '山田太郎');
成功すると INSERT 0 1 と表示されます。
もう1件登録してみます。
INSERT INTO books (title, author)
VALUES ('Railsガイド', '佐藤花子');
8. データを確認する
SELECT * FROM books;
登録したデータが一覧で表示されれば成功です 🎉
これでデータベースに保存・取得ができました。
ここまでで何ができたのか?
- PostgreSQL サーバーが動いている
- ユーザーを作れた
- データベースを作れた
- テーブルを作れた
- データを保存・取得できた
これはつまり、Ubuntuが本物のデータベースサーバーになったということです。
次回予告
次回はいよいよ、この PostgreSQL を Rails 8 に接続します。
SQLite から PostgreSQL に切り替え、
本番運用できる Rails アプリへ進化させます 🚀

コメント