【徹底解説】WSL UbuntuにPostgreSQLをインストールする方法|ユーザー作成からテーブル作成まで完全ガイド

DB工場

この記事でできるようになること

  • Ubuntu に PostgreSQL をインストールできる
  • データベースとユーザーを作れる
  • テーブルを作ってデータを入れられる
  • SELECT でデータを確認できる

この記事のゴールは、「Ubuntuが本物のデータベースサーバーとして動いた!」という状態を作ることです。Rails とはまだ接続しません。


1. PostgreSQL をインストール

Ubuntu のターミナルで次を実行します。

sudo apt update
sudo apt install -y postgresql postgresql-contrib

PostgreSQLをインストール

インストール後、サービスが動いているか確認します。

sudo systemctl status postgresql

Active: 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 アプリへ進化させます 🚀

コメント