OpenBSD 6.7 was released last month and PostgreSQL was upgraded from 11.7 to 12.2 then. The installation process of PostgreSQL server in OBSD 6.7 is almost the same to that in 6.5.
Environment
- OS: OpenBSD 6.7
- DB: PostgreSQL 12.2
Summary
The overall steps are below:
$ doas pkg_add postgresql-server
$ doas su _postgresql
$ cd /var/postgresql/
$ # changed: `--auth=md5` -> `--auth=scram-sha-256`
$ initdb -D /var/postgresql/data/ -U postgres --auth=scram-sha-256 --pwprompt --encoding=UTF-8 --locale=xx_XX.UTF-8
$ # password of superuser = postgres is asked
$ exit
$ doas rcctl enable postgresql
$ doas rcctl start postgresql
Each of them will be described at the rest of this post as tutorial.
Tutorial
Install
Get the application package from ports system:
$ doas pkg_add postgresql-server
Init database
Switch user to _postgresql
which was created at the package installation above in order to avoid error on permission:
$ doas su _postgresql
$ cd /var/postgresql/
Run init_db
to create a database cluster:
$ initdb -D /var/postgresql/data/ -U postgres --auth=scram-sha-256 --pwprompt --encoding=UTF-8 --locale=xx_XX.UTF-8
Here, --auth=scram-sha-256
and --pwprompt
are for the sake of security. --auth=scram-sha-256
can be relaced by --auth=md5
.
--locale
is up to your environment. In my case, it’s ja_JP.UTF-8
.
In order not to specify locale, run without --encoding=UTF-8 --locale=xx_XX.UTF-8
instead:
- --encoding=UTF-8 --locale=xx_XX.UTF-8
+ --no-locale
The password of the superuser aka postgres
is asked:
Enter new superuser password:
Enter it again:
After the process is completed, exit from _postgersql
user:
$ exit
Start PostgreSQL server
Activate the daemon and start it:
$ doas rcctl enable postgresql
$ doas rcctl start postgresql
postgresql(ok)
Finished.
After Installation
The config files such as postgresql.conf and pg_hba.conf were created. They are useful to configure your servers.
psql
was also installed. It is used as a terminal-based front-end to PostgreSQL.
By using the password asked above, it’s able to connect to the server:
$ psql -U postgres
Thank you for your reading :)