我在我的服务器上启动了一个postgres服务器,用于创建云形成模板。问题是我不确定如何在运行时加载文件,正确的用户或命令是什么:
我试过这个:
May 2 13:50:16 ip-10-205-0-135 cloud-init: 2016-05-02 13:50:16 (31.1 MB/s) - ‘psqlCloudera.sql’ saved [876/876]
May 2 13:50:16 ip-10-205-0-135 cloud-init: psql -U postgres -a -f psqlCloudera.sql
May 2 13:50:16 ip-10-205-0-135 cloud-init: psql: FATAL: Peer authentication failed for user "postgres"
有点不同:
在我的用户数据中涉及“su-postgres \ n”。
May 2 13:31:05 ip-10-205-0-135 cloud-init: Saving to: ‘psqlCloudera.sql’
May 2 13:31:05 ip-10-205-0-135 cloud-init: 0K 100% 36.2M=0s
May 2 13:31:05 ip-10-205-0-135 cloud-init: 2016-05-02 13:31:05 (36.2 MB/s) - ‘psqlCloudera.sql’ saved [876/876]
May 2 13:31:05 ip-10-205-0-135 cloud-init: psql -a -f psqlCloudera.sql
May 2 13:31:05 ip-10-205-0-135 cloud-init: psql: FATAL: role "root" does not exist
在启动时加载postgres的正确方法是什么?
答案 0 :(得分:0)
我发现只要您编辑pg_hba.conf并使其信任本地连接就可以使用第一部分代码,因此您无需在云形成的运行时期间通过postgres用户进行身份验证。第二个选项不起作用,因为在CF中显然当你切换到另一个用户时你需要将命令链接在一起,否则CF会注意到用户无事可做并退出该用户。