初めて使う
環境
$ sw_vers ProductName: Mac OS X ProductVersion: 10.11.6 BuildVersion: 15G1611
試す
$ brew install postgresql
文字コードをUTF8で初期化する(?)
$ initdb /usr/local/var/postgres -E utf8
$ postgres --version postgres (PostgreSQL) 10.1
サーバ起動. あら? プロセスが常駐してターミナルを放してくれない...
$ postgres -D /usr/local/var/postgres
バックグラウンドで動かそうとした
$ nohup postgres -D /user/local/var/postgres & ... [1]+ Exit 2
あら?
$ postgres -D /usr/local/var/postgres >postgres.log 2>&1 &
これはいけた
$ psql -l
確認できたっぽい
DBの配置箇所をexportしてあげる.
.bash_profile
に追記する
$ vim ~/.bash_profile ... export PGDATA=/usr/local/var/postgres
pg_ctl
というコマンドがあるらしい。サーバの起動と停止を行う。なるほど。バックグラウンドでやる必要なかったんだ。。。
さっき、起動したのは停止して、このコマンドを使う.
$ pkill -f postgress $ pg_ctl -D /usr/local/pgsql/data -l /var/log/postgres start pg_ctl: directory "/usr/local/pgsql/data" does not exist
おろ? 作る
$ mkdir -p /usr/local/pgsql/data $ pg_ctl -D /usr/local/pgsql/data -l /var/log/postgres start pg_ctl: directory "/usr/local/pgsql/data" is not a database cluster directory
おろろ?
調べたら初期化コマンドinitdb
で起動するっぽい
? じゃあディレクトリを変更すればいい感じなのかな?
$ pg_ctl -D /usr/local/var/postgres -l /var/log/postgres start waiting for server to start..../bin/sh: /var/log/postgres: Permission denied
$ sudo pg_ctl -D /usr/local/var/postgres -l /var/log/postgres start Password: pg_ctl: cannot be run as root
ぬぬぬぬぬ. /var/log/
以下でアクセスエラーやな
カレントディレクトリにログを吐くようにした.
$ pg_ctl -D /usr/local/var/postgres -l postgres.log start waiting for server to start.... done server started
よし. 起動した.
停止するなら、stopでいいらしい
$ pg_ctl stop
ユーザーの作成はこう.
$ createuser -P pg-user
で、psql
コマンドで作成したユーザーを確認する
$ psql -q -c'select * from pg_user' pg-user psql: FATAL: database "pg-user" does not exist
ほう?
さっき作成したDB名を指定しないとダメだった。。。なぜ?
$ psql -d postgres -c'select * from pg_user' `pg-user`
DB作成
$ createdb example-db -O pg-user
コマンドおおいな!
接続
$ psql -U ps-user -d example-db
\d
でテーブル一覧、\l
でDB一覧
テーブル作成
=> create table example ( > key char(800) primary key, > data1 int8 > ); CREATE TABLE > \d List of relations Schema | Name | Type | Owner --------+---------+-------+--------- public | example | table | pg-user > select * from example; key | data1 -----+------- (0 rows) > \d example Table "public.example" Column | Type | Collation | Nullable | Default --------+----------------+-----------+----------+--------- key | character(800) | | not null | data1 | bigint | | | Indexes: "example_pkey" PRIMARY KEY, btree (key)