如何在postgres

时间:2017-11-09 07:10:17

标签: postgresql

我想知道如何在postgresql中恢复超级用户帐户。

我意外取消选中了我的本地postgres帐户的超级用户权限。它是此postgresql实例中唯一的超级用户帐户。

现在我无法登录本地服务器。

我尝试使用:

#psql -U postgres 

但它不起作用。

你能帮我解决这个问题,并为我提供解决问题的详细解决方案吗?

1 个答案:

答案 0 :(得分:3)

你是从shell做到的:

  1. 首先将您的用户更改为postgres一个:> su - postgres

  2. 进入postres run-> > psql

  3. 在postgres内部运行此SQL查询:ALTER USER postgres WITH SUPERUSER;

  4. 要查看用户运行的权限:\du

  5. 为了将来参考,请查看Alter user documentation

    First Edit - ŁukaszKamiński的好点

    你必须按照account on postgresql中的指示以单一模式运行它(ŁukaszKamiński用于粘贴链接)。

    如果您在Windows上,则无法在链接中运行命令,因为它们应在* nix环境中运行(即在debian上或在此链接上克隆)。

    在Windows上你必须:

    1. 通过run - &gt;停止服务services.msc并找到该服务 (也可以通过net stop <exact name of the service>在命令行完成)
    2. 然后开始你的cmd.exe(作为管理员 - &gt;不再需要PG9.6甚至阻止者 - 谢谢你ŁukaszKamiński)
    3. 找到您的postgres可执行文件,例如c:\Program Files\PostgreSQL\10.0\bin> postgres.exe --single -D "c:\Program Files\PostgreSQL\10.0\data"
    4. 运行ALTER USER postgres WITH SUPERUSER;以重新拥有超级用户。
    5. run开始 - &gt; services.msc并找到服务(也可以通过net start <exact name of the service>在命令行完成)