サイドバーの「Django ドキュメント検索」というプレースホルダの入った検索では、Django ドキュメント (Django 2.1) の公式サイト内を検索できます

はじめに

オープンソースのデータベースというと MySQL と PostgreSQL が双璧ですが、管理人はこれまでずっと MySQL を使ってきました。しかし、Django では PostgreSQL が推奨されていることから、PostgreSQL も試してみたいと思っていたことと、GCP から Heroku へデプロイ先を変更しようと思い調べたところ、Heroku では (MySQL も使えますが) Postgres の方が情報が多い事から PostgreSQL  のインストールを行ってみました。

この記事では、Linux Mint 19 へ PostgreSQL 10.4 をインストールした際の手順を記事にします。

インストール

インストールは apt でいつもどおりに行えます。

スーパーユーザ (postgres) のパスワード設定

デフォルトのスーパーユーザ postgres のパスワードが設定されていないため、パスワードを設定しておきます。

sudo で postgres というユーザとして psql を立ち上げます。

postgres ユーザのパスワードを設定します。(小文字の password 部分は設定するパスワードに置き換えてください)

 

もう一つのスーパーユーザを作成

データベースメンテナンスはスーパーユーザで行いますが、開発用の PC でメンテナンスの度に Linux ユーザを postgres に切り替えて処理をするとなるとかなり不便です。(特に外部ツールを使って接続する時など。) そこで、Linux ユーザを切り替える必要のない (PostgreSQL の) スーパーユーザ (ここでは jade とします) を作成します。

ポイントここで作成するユーザ名をログインしている Linux のユーザ名にしておくと、psql コマンドでユーザ名を省略できて便利です。

psql を立ち上げます。 postgres ユーザで接続しますので、 sudo で postgres として psql を起動します。

データベーススーパーユーザ jade を作成します。 (password_jade は適当なパスワードに置き換えてください。)

1行目の CREATE USER は LOGIN 可能な ROLE を作成するコマンドです。

2行目はユーザ名と同名のデータベースを作成しています。ユーザ名と同名のデータベースは、データベースを指定せずに接続した場合のデフォルトデータベースとなりますので、これを用意することでデータベースを指定せずに接続してもエラーにならなくなります。

さらに、ローカルの接続 (postgres を除く) を Peer 認証からパスワード認証に切り替えます。

切り替えのためには、 /etc/postgresql/10/main/pg_hba.conf (PostgreSQL のバージョンによってフォルダ名は変わります。) を書き換えます。

(postgres ユーザはそのまま = Peer 認証にしておきました。)
最後にデータベースを再起動します。

これで、 下記コマンドでデータベースに接続できます。

jade がログインしている Linux のユーザ名の場合は、ユーザ名を省略して下記で接続できます。(パスワードは必要です。)

 

参考

PostgreSQL 10.4文書 パート III. サーバの管理 | 第20章 クライアント認証

 

低価格なのに高速・多機能・高セキュリティ 月額400円(税別)から最大容量100GB WordPress専用高速サーバー Z.com WP
おすすめの記事