CET FATAL:在postgresql-9.3-main.log中,角色“root”不存在。

3
less /var/log/postgresql/postgresql-9.3-main.log

查看 PostgreSQL 日志文件时,我发现有很多行出现了以下内容:

CET FATAL:  role "root" does not exist

经过多次谷歌搜索,我只找到了创建用户的方法,但这并不是我要找的。 如何检查这个postgresql定期作业是什么类型的?

谢谢

3个回答

4
我有一个解决方案。
CEST FATAL:  role "root" does not exist

这个问题在我的Postgres日志中每5分钟出现一次。 我使用htop搜索找到了污染我的日志的恶意程序。 那就是Monit!Monit每5分钟检查Postgres是否正在运行。 以下是Monit配置(monitrc):

 check process postgres with pidfile /var/postgres/postmaster.pid
 group database
 start program = "/etc/init.d/postgresql start"
 stop  program = "/etc/init.d/postgresql stop"
 if failed unixsocket /var/run/postgresql/.s.PGSQL.5432 protocol pgsql 
 then restart
 if failed host 111.111.111.111 port 5432 protocol pgsql then restart 

现在我从配置中删除了它,因为我不知道如何修复它。 我认为问题出在unixsocket和访问权限上。


请查看以下链接以了解有关Monit与PostgreSQL的更多信息:https://mmonit.com/wiki/Monit/PostgreSQL 和 http://www.asahi-net.or.jp/~aa4t-nngk/monit2_en.html#pgsqltest - Denis SkS
但对于 PostgreSQL 版本 12,针对 root 用户的 pg_hba.conf 文件应为: local root root ident - Denis SkS

0

这必须是来自root的连接尝试。要检查cron,您可以以root身份登录,并检查cron列表中哪个尝试连接到postgres而没有指定--user valid_user-U valid_user

希望能帮到你


谢谢您的回答,但是在使用crontab -l -u root测试根cron作业后,没有与postgres命令相关的内容。 - Cristiano Zanca
可能它不是在cron中运行的,而是通过root用户手动运行的。或者可能是postgres命令嵌入到脚本中,因此通过发出crontab -l不会出现它。 - Soni Harriz
我同意,我该如何拦截来自根用户的命令?它每2分钟出现一次。 - Cristiano Zanca

0
从日志文件名来看,我猜你是从一个.deb包中安装的Postgres。
如果是这种情况,导致问题的定时任务不是deb包中自带的,而是你自己在本地创建的一个。

好的,我已经通过 crontab -l 进行了检查,只有一个命令用于清空交换内存文件,没有与 postgres 相关的自定义命令。我该如何找到是哪个应用程序发起了这个 root 登录尝试? - Cristiano Zanca

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接