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
実践
# # PostgreSQL にログイン # PGPASSWORD=password psql -U postgres psql (8.4.20) "help" でヘルプを表示します. postgres=# \q # # # ヒアドキュメントを使って、スーパーユーザ (postgres) にパスワード設定 # su - postgres <<EOT > psql -U postgres > Alter USER postgres encrypted password 'vagrant'; > \q > exit > EOT ALTER ROLE # # ヒアドキュメントを使って、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 CREATE ROLE CREATE DATABASE
おわりに
次のページが参考になりました。ありがとう存じます♪
- psqlコマンド接続によるパスワードについて – PostgreSQL 解決済 | 教えて!goo
- psql接続時に対話でパスワードを入力しない – shibainu55日記
- psqlコマンド接続によるパスワードについて – PostgreSQL 解決済 | 教えて!goo
以上です。