执行scm_prepare_database.sh脚本失败:PostgreSQL Ident认证错误求助
解决Cloudera Manager
scm_prepare_database.sh的PostgreSQL Ident认证失败问题 这个FATAL: Ident authentication failed for user "scm"错误是PostgreSQL默认的Ident认证机制导致的——PostgreSQL默认会尝试用当前操作系统用户匹配数据库用户,而你用root用户执行脚本时,操作系统用户root和数据库用户scm不匹配,所以认证被拒绝了。下面是具体的解决步骤:
步骤1:修改PostgreSQL的认证配置文件
- 对于你安装的PostgreSQL 9.2,
pg_hba.conf配置文件的默认路径是:/var/lib/pgsql/9.2/data/pg_hba.conf - 用文本编辑器打开该文件:
sudo vim /var/lib/pgsql/9.2/data/pg_hba.conf - 找到以下两条本地连接规则:
local all all ident host all all 127.0.0.1/32 ident - 将规则中的
ident替换为md5(md5是基于密码的认证方式,适配Cloudera脚本的调用场景),修改后内容如下:local all all md5 host all all 127.0.0.1/32 md5
步骤2:重启PostgreSQL服务使配置生效
在RHEL 7.4上执行命令重启服务:
sudo systemctl restart postgresql-9.2
步骤3:确认数据库用户scm的密码设置正确
- 切换到postgres用户登录PostgreSQL:
sudo -u postgres psql - 执行SQL命令重置scm用户的密码(替换为你执行脚本时要输入的密码):
ALTER USER scm WITH PASSWORD 'your-scm-password'; - 退出psql交互环境:
\q
步骤4:重新执行scm_prepare_database.sh脚本
再次运行你的脚本并输入刚才设置的密码:
sudo /opt/cloudera/cm/schema/scm_prepare_database.sh postgresql scm scm
如果还有问题,可以查看PostgreSQL日志(默认路径/var/lib/pgsql/9.2/data/pg_log)获取更详细的错误信息,进一步排查。
内容的提问来源于stack exchange,提问作者Tanishq Singh
相关产品推荐
相关产品推荐

