我试图创建一个安装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';"
答案 0 :(得分:0)
从这里开始几点:
local...
回显到hba.conf
的末尾时,它通常是无用的 - 首先应用规则 - 您永远不会达到该字符串。如果你真的希望本地使用sed
md5
对等到md5会更好
.pgpass
或手动输入(这会使脚本无用)echo "CREATE USER ...
无法工作之后psql
- 以太保存sql并使用psql -f file.sql
调用或运行 psql <<EOF
create user ...
...
EOF