MySQL では接続コマンドと同時にパスワードを渡してログインすることが可能です。mysql -u root -ppassword
という書き方ですわね。
PostgreSQL ではどうかしら?ヘルプを見てみましても、存在しません。調べてみたところ、簡単に書ける方法がございましたので、メモいたします。
接続コマンドと同時にパスワードを渡す psql の書き方
# mysql -u root -ppassword のように 1 行で PostgreSQL にログイン
PGPASSWORD=password psql -U postgres
# おまけ。ヒアドキュメントを使って、スーパーユーザ (postgres) にパスワード設定
su - postgres <<EOT
psql -U postgres
Alter USER postgres encrypted password 'vagrant';
\q
exit
EOT
# ヒアドキュメントを使って、DB 作成
PGPASSWORD=password psql -U postgres <<EOT
CREATE USER user1 WITH NOSUPERUSER NOCREATEDB NOCREATEROLE PASSWORD 'password1';
CREATE DATABASE db1 WITH OWNER user1 ENCODING 'UTF8';
EOT