ubuntu,PostgreSQL 数据库在root下无法备份,如何解决?

ubuntu,PostgreSQL 数据库在root下无法备份,在 postgres用户下可以正常,如何解决?

在root运行脚本报错

pg_dump: error: connection to database "davinci" failed: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  Peer authentication failed for user "postgres"

手动备份命令也是同样不行
pg_dump davinci> /mnt/pgbak/davinci.sql

在su - postgres下,

则没有任何问题,手动备份也可以备份成功。

请问如何解决?

您好!如果您的 PostgreSQL 数据库在 root 下无法备份,可以尝试以下方法:

  1. 使用 sudo 命令以超级用户身份运行备份脚本。例如,如果您的备份脚本名为 backup.sh,则可以使用以下命令运行它:
sudo su -
./backup.sh
  1. 确保您的 PostgreSQL 数据库允许 root 用户访问。您可以在 PostgreSQL 配置文件中添加以下内容:
#psql -U postgres -c "CREATE USER someuser WITH PASSWORD 'somepassword';"

这将创建一个名为 someuser 的新用户,并将其密码设置为 somepassword。然后,您需要使用此用户登录到 PostgreSQL 并授予其备份权限。例如:

psql -U someuser -c "GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO someuser;"

这将授予 someuser 对所有表的完全访问权限。请注意,这可能会导致安全问题,因此请谨慎使用。