CHANyoshiのブログ

初心者プログラマーです。

ubuntuでPostgreSQLの初期設定まで

設定に関しては、こちらを参考にしました。

PostgreSQL 9.6.5文書

UbuntuでPostgreSQLを使ってみよう (2) | Let's Postgres


まず、インストール

$ sudo apt-get install postgresql


データベースサーバにアクセスできるかどうか試験するため、データベースの作成をしてみる。

1.3. データベースの作成

$ creatdb mydb
createdb: could not connect to database template1: FATAL:  role "yoshi" does not exist


この表示は管理者がそのユーザー用のPostgreSQLユーザアカウントを作成していない時に起こるそう。 なので、まずアカウントを作成することにする。 21.1. データベースロール

fingerコマンドで『postgres』というアカウント が作成されていることを確認する。

$ finger postgres
Login: postgres                 Name: PostgreSQL administrator
Directory: /var/lib/postgresql          Shell: /bin/bash
Never logged in.
No mail.
No Plan.


確認できたら、postgresユーザでログインできるようにパスワードを設定する。

$ sudo passwd postgres
新しい UNIX パスワードを入力してください: 
新しい UNIX パスワードを再入力してください: 
passwd: パスワードは正しく更新されました


設定が完了し、postgres ユーザでログインできるようになった。
suコマンドでpostgresユーザーになり、 createdb コマンドでデータベースを作る

#mydbは任意の名前

$ su postgres
postgres@ubuntu:/home/yoshi$ createdb mydb


psqlコマンドでmydbに接続する

postgres@ubuntu:/home/yoshi$ psql mydb
psql (10.5 (Ubuntu 10.5-0ubuntu0.18.04))
Type "help" for help.

mydb=# 


mydbに入れたら、CREATE ROLE SQLコマンドで新規ユーザを作成し、データベースを操作できるようにする。

#nameは任意の名前(私はオペレーティングシステムユーザと同じ名前にしました)
#WITH LOGINを追加して、ログイン許可を与える

mydb=# CREATE ROLE name WITH LOGIN;
CREATE ROLE


PostgreSQLを切断し、さきほど設定した新規ユーザー(オペレーティングシステムユーザと同じ名前)で再度PostgreSQLに接続

mydb=# \q
postgres@ubuntu:/home/yoshi$ exit
$ psql mydb
psql (10.5 (Ubuntu 10.5-0ubuntu0.18.04))
Type "help" for help.

mydb=> 


無事、データベースに自分のアカウントでログインできるようになった。