PostgreSQLをインストールした時点で、自動的にデータベースの管理ユーザーであるpostgresユーザーが作成されます。ただ、このユーザーのパスワードは未設定の状態であるため、アカウントロック状態となっており、このままではrootユーザーからsuコマンドでスイッチする方法以外でのログインができません。
postgresユーザーのパスワード設定(OSユーザー)
そこで、postgresユーザーでログインできるようにパスワードを設定しておきます。パスワードの設定は「passwd <ユーザー名>」コマンドで行えます。
# passwd postgres ユーザー postgres のパスワードを変更。 新しいパスワード: 新しいパスワードを再入力してください:
「新しいパスワード」プロンプトが表示されるので、任意のパスワードを設定してください。
postgresユーザーのパスワード設定(PostgreSQLユーザー)
前述でpostgresユーザーのパスワードを設定しましたが、そのユーザーはOSのユーザーです。次に設定するのはミドルウェア(PostgreSQL)が管理するユーザーです。同じユーザー名でも両者は異なるユーザーとなるため混合しないように注意して下さい。
まず、OSのpostgresユーザーにスイッチします。
# su - postgres -bash-4.2$
続いて、psqlコマンドを実行します。psqlコマンドはPostgreSQL対話的ターミナルであり、PostgreSQLに対して各種コマンドを発行して、その結果を確認したり、設定を変更することができます。
-bash-4.2$ psql psql (9.5.2) "help" でヘルプを表示します. postgres=#
コマンドに成功するとプロンプトが「postgres=#」に変わります。このプロンプトになったら以下のコマンドを実行し、PostgreSQLが管理するユーザーの方のpostgresユーザーに対してパスワードを設定します。
postgres=# alter role postgres with password 'postgres'; ALTER ROLE
上記サンプルでは「postgres」という文字列のパスワードを設定しています。
これでパスワードの設定は完了したので、psqlを終了します。終了方法は、「\q」と入力しEnterキーを押下するか、Ctrl+dで行えます。
postgres=# \q -bash-4.2$
パスワード設定後はPostgreSQLを再起動し、設定を反映させます。なお、PostgreSQLの再起動はrootユーザーで行います。
# systemctl stop postgresql-9.5 # systemctl start postgresql-9.5
以上でパスワードの設定は完了です。