如果不小心从用户postgres上删除了超级用户权限,可以通过以下步骤进行恢复而无需重新安装。
sudo -u postgres psql
CREATE USER my_superuser WITH SUPERUSER;
\q
sudo vi /etc/postgresql/{version}/main/postgresql.conf
#listen_addresses = 'localhost' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
修改为:
listen_addresses = '*' # 允许所有IP地址连接
保存并退出postgresql.conf文件。
编辑pg_hba.conf文件,该文件用于设置客户端与服务器之间的连接规则:
sudo vi /etc/postgresql/{version}/main/pg_hba.conf
# "local" is for Unix domain socket connections only
local all all trust
保存并退出pg_hba.conf文件。
重新启动PostgreSQL服务:
sudo service postgresql restart
现在,您应该能够使用新创建的超级用户my_superuser重新获得对数据库的超级用户权限。
请注意,这个方法假设您具有对数据库服务器的root访问权限。如果没有root访问权限,则可能需要与系统管理员合作来执行这些步骤。