postgres中的无人参与安装和sql语句

时间:2017-03-28 18:12:26

标签: bash postgresql shell ubuntu

我试图创建一个安装postgres的shell脚本,然后运行几个sql语句。我曾尝试过很多教程,但仍然会获得peer authentication failed for user postgres?到目前为止,我有以下正确安装的shell脚本,但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';"

1 个答案:

答案 0 :(得分:0)

从这里开始几点:

  1. 当您将local...回显到hba.conf的末尾时,它通常是无用的 - 首先应用规则 - 您永远不会达到该字符串。如果你真的希望本地使用sed
  2. 进行连接,那么现有行的md5对等到md5会更好
  3. 你希望postgres的本地套接字连接使用md5 - 这意味着你必须将密码保存到.pgpass或手动输入(这会使脚本无用)
  4. echo "CREATE USER ...无法工作之后
  5. psql - 以太保存sql并使用psql -f file.sql调用或运行
  6. psql <<EOF

    create user ...

    ...

    EOF