# pkg install postgresql10-server
postgresql_enable="YES" postgresql_data="/usr/local/pgsql/DATA"
# mkdir /usr/local/pgsql # chown postgres:postgres /usr/local/pgsql # su - postgres $ initdb -D /usr/local/pgsql/data または # service postgresql initdb
または # /usr/local/etc/rc.d/postgresql initdb
/usr/local/pgsql/data/pg_hba.conf に設定します。
標準では自分自身からの接続のみを許可しています。
# TYPE DATABASE USER CIDR-ADDRESS METHOD host all all 192.168.0.0/24 md5
これで、192.168.0.xxxからの接続が許可されます。1)
ほかからアクセスする場合には、postgresql.confのlisten_addresses も変更が必要です。
listen_addresses = '*'
# service postgresql start
rootユーザのパスワードを変更します。2)
alter role postgres with password 'xxxxxxxxxxxxxxxxxxxx';
# su - postgres $ createuser -d -U postgres -P ユーザー名 Enter password for new role: Enter it again: Shall the new role be a superuser? (y/n)
-d
データベースの作成を許可
-P
パスワード入力プロンプトを表示
または、psqlの中で
CREATE ROLE role_name WITH LOGIN PASSWORD 'password'
# psql postgres postgres=# \du List of roles Role name | Superuser | Create role | Create DB | Connections | Member of -----------+-----------+-------------+-----------+-------------+----------- dbuser1 | no | no | no | no limit | {} dbuser2 | no | no | no | no limit | {} postgres | yes | yes | yes | no limit | {} (3 rows) postgres=#
# psql postgres postgres=# alter role postgres with password 'NewPassword'; ALTER ROLE postgres=#
$ createdb -E UTF8 -O オーナー名 データベース名
私は、面倒なのでpgadminから作っています。
SQLの場合
CREATE DATABASE [database_name] [ [ WITH ] [ OWNER [=] user_name ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] [ LC_COLLATE [=] lc_collate ] [ LC_CTYPE [=] lc_ctype ] [ TABLESPACE [=] tablespace_name ] [ CONNECTION LIMIT [=] connlimit ] ]
文字コードが標準と違う場合には
TEMPLATE = template0
を指定する必要があります3)
日本語DBの作成例
CREATE DATABASE dbname WITH OWNER ownername ENCODING UTF8 LC_COLLATE 'ja_JP.UTF-8' LC_CTYPE 'ja_JP.UTF-8' TEMPLATE template0 ;
なお、localeはエンコーディング部分はUTF8ではなくてUTF-8となります。マニュアルなどにはハイフンなしで書かれていますがハイフンが必要です。4)