メモ日記

実生活やネットで経験したこと調べたことをまとめたサイト

debianにpostgresqlをインストール

pythonから扱うのが目標

pythonで扱ったデータを保存しようとしていて、 今まではsqlite3というのを使って保存していたけれど、 これをpostgresqlに置き換えるのが目標。

postgresqlは昔触ったことはあるけれど、 自分で環境作り等をしたことなかったので、 その操作等のメモ。

環境としてはwsl上のDebianに保存していこうと思う。 wsl上という言い方があっているのかどうか。

インストール

公式リポジトリを設定してからインストールする方法があるらしいけれど、 今回はそういったことはせず、テキトーにインストールした。

sudo apt update
sudo apt upgrade
sudo apt install postgresql

設定

*.confの場所

/etc/postgresql/バージョン番号/main

以下に設定ファイルがおいてある

localhostのみアクセスできるようにする

/etc/postgresql/ /main/postgresql.conf

のなかで

listen_addresses = 'localhost'

とすることで設定できる。

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

aptでインストール後、postgresユーザーが追加される。

それで、システムとDBそれぞれに対してpostgresユーザーのパスワードを設定する。

sudo passwd postgres

OSに対しては上記のコマンドでパスワード追加

su - postgres
psgl

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

上はpostgresにスイッチしてから、 psqlコマンドでcliを開始。 その後、パスワードを設定してcliを終了させている。

psqlを実行したときにエラーがおきたけれど、

sudo /etc/init.d/postgresql restart

したら直った。

DB操作用のユーザーを追加

postgresというユーザーがいて、それで操作できるけれど、 普段使っているユーザーで操作したい場合は、 それと同名のユーザーをDBに対して追加する

su - postgres

createuser --pwprompt --interactive

一つ目のコマンドでpostgresユーザーにスイッチして、 二つ目のコマンドでユーザーを追加する。 対話式のやりとりが始まって、 新しいロールをスーパーユーザーにするかという問はyにする。

postgresユーザー以外でpostgresユーザーとしてDBに接続する設定

/etc/postgresql/ /main/pg_hba.conf

を編集

local all postgres peer

local all postgres md5

へ変更して、

sudo /etc/init.d/postgresql restart

postgresユーザーでログインしてDB作成

psql -U postgres
CREATE DATABASE 任意の名前
\q

DBが作成されたかどうかは

psql -l

データベース指定してログインする

psql -U postgres -d 任意の名前

自動起動

postgresqlの自動起動 debian

sudo update-rc.d postgresql enable