2017-03-28 21 views
0

私はpostgresをインストールするシェルスクリプトを作成しようとしており、その後にいくつかのSQL文を実行しています。私は多くのチュートリアルに従おうとしましたが、peer authentication failed for user postgresを得続けますか?これまで私は正しくインストールされているが、SQLは実行されていないシェルスクリプトを持っています。ここで開始するpostgresの無人インストールとSQL文

# postgres install 
sudo apt-get -y install postgresql postgresql-contrib 

# edit configs and restart 
sudo echo "listen_addresses = '*'" >> /etc/postgresql/9.5/main/postgresql.conf 
sudo echo "local all    postgres        md5" >> /etc/postgresql/9.5/main/pg_hba.conf 
sudo service postgresql restart 

sudo -u postgres psql postgres 
echo "CREATE USER test WITH LOGIN NOSUPERUSER INHERIT NOCREATEDB  NOCREATEROLE NOREPLICATION;" 
echo "ALTER user postgres WITH PASSWORD '$PASSWORD';" 

答えて

0

いくつかのポイント:

  1. あなたがhba.confの最後にlocal...をエコーするとき、それは最も頻繁に無用である - 最初のルールが適用されます - あなたは、その文字列に到達することはありません。それはあなたが、スクリプトを作るた(.pgpassにパスワードを保存するか、手動で入力しなければならないことを意味 - あなたが本当にmd5
  2. を使用して接続するローカルあなたはMD5を使用するためにはpostgresのローカルソケット接続を期待したい場合は、既存の行のMD5にsedピアとても良くpsql文句を言わない仕事の後
  3. echo "CREATE USER ...)役に立たない - エーテルSQLを保存してpsql -f file.sqlでそれを呼び出すか、実行

psql <<EOF

create user ...

...

EOF

+0

大丈夫、私は依存postgres' –

+0

'sudoの-uのpostgres psqlの後root'ユーザー'に戻るんか - あなたのスクリプトは何ですか? –

+0

私は、複数のアプリケーションをインストールするインストール後のスクリプトをスクリプト化します。 –

関連する問題