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