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 下无法备份,可以尝试以下方法:
sudo
命令以超级用户身份运行备份脚本。例如,如果您的备份脚本名为 backup.sh
,则可以使用以下命令运行它:sudo su -
./backup.sh
#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
对所有表的完全访问权限。请注意,这可能会导致安全问题,因此请谨慎使用。