Database JUNKY

MySQL,MariaDBを中心としたブログです

postgres データベースを作成する

postgresで新規のデータベースを作成したいと思います。データベース名は、QuickKnowLedgeにちなんで、QKで 作成してみます。 以下作成するまでの手順です。

  1. dbuserにsuします。 # su - dbuser
  2. データベースを作成します。 $ createdb qk -O dbuser CREATE DATABASE
  3. qkデータベースに接続します。 $ psql qk Welcome to psql 8.1.11, the PostgreSQL interactive terminal. Type:  \copyright for distribution terms        \h for help with SQL commands        \? for help with psql commands        \g or terminate with semicolon to execute query        \q to quit
  4. あっさりできてしまったので、とりあえずコマンドで遊んでみます。テーブルスペースがどうなっているか確認してみます。 qk=# \db+                  List of tablespaces     Name    |  Owner   | Location | Access privileges ------------+----------+----------+-------------------  pg_default | postgres |          |  pg_global  | postgres |          | (2 rows)
  5. 新規でテーブルスペースを作成してみます。いったんrootに戻り、空のディレクトリを作成しました。 # mkdir /db # chown -Rf dbuser /db # chgrp -Rf dbuser /db # chmod 777 /db
  6. 再び,dbuserにsuします。 # su - dbuser
  7. では、create tablespace をいたします。 $ psql qk Welcome to psql 8.1.11, the PostgreSQL interactive terminal. Type:  \copyright for distribution terms        \h for help with SQL commands        \? for help with psql commands        \g or terminate with semicolon to execute query        \q to quit qk=# CREATE TABLESPACE ts1 LOCATION '/db/ts1'; ERROR:  could not set permissions on directory "/db/ts1": 許可されていない操作です
  8. どうもアクセス権があるような、ないようなメッセージで、わざわざディレクトリのパーミッションを777にしたのにだめなんですかね。。ディレクトリのオーナを、posgresにしてみます。 # chown -Rf postgres /db # chgrp -Rf postgres /db
  9. もう一度、トライしたところうまくはいきましたが、いまいちよく理解しておりません。(postgresのユーザーに何の関係があるのか?) qk=# CREATE TABLESPACE ts1 LOCATION '/db/ts1'; CREATE TABLESPACE qk=# \db+                  List of tablespaces     Name    |  Owner   | Location | Access privileges ------------+----------+----------+-------------------  pg_default | postgres |          |  pg_global  | postgres |          |  ts1        | dbuser   | /db/ts1  | (3 rows)
  10. ひとまずテーブルスペースの作成は完了しました。思ったのが、db2のテーブルスペースの考え方とすこし違うのかな?といった感じです。次回はqkデータベースのデフォルトテーブルスペースを、このts1に移動するところをやってみたいと思います。