我是postgres的新手。

我安装了postgres。我在玩psql命令,我不小心掉了postgres数据库。我不知道里面有什么。

我目前正在制作一个教程:http://www.rosslaird.com/blog/building-a-project-with-mezzanine/

我被困在sudo -u postgres psql postgres

错误信息:psql: FATAL: role "postgres"不存在

$ which PSQL

/Applications/Postgres.app/Contents/MacOS/bin/psql

这是psql -l输出的内容

                                List of databases
    Name    |   Owner    | Encoding | Collate | Ctype |     Access privileges     
------------+------------+----------+---------+-------+---------------------------
 user       | user       | UTF8     | en_US   | en_US | 
 template0  | user       | UTF8     | en_US   | en_US | =c/user                  +
            |            |          |         |       | user      =CTc/user      
 template1  | user       | UTF8     | en_US   | en_US | =c/user                  +
            |            |          |         |       | user      =CTc/user      
(3 rows)

那么我应该采取哪些步骤呢?删除一切相关的psql和重新安装一切?

谢谢你们的帮助!


当前回答

我在前一天执行了brew services stop postgresql后陷入了这个问题。第二天:brew服务启动postgresql将无法工作。这是因为如使用自制软件安装时所示。Postgresql使用launchd…它会在电脑开机时加载。解析:brew services start postgresql重启计算机。

其他回答

如果您是MAC (M1)用户,并使用HomeBrew安装了Postgres,那么请遵循以下步骤:

使用哪个psql . exe检查Postgres位置 如果第一个回显为/opt/homebrew/bin/psql,则执行/opt/homebrew/bin/createuser -s postgres

这个想法是使用postgres安装位置创建一个名为“postgres”的用户。因此,您可能需要根据Postgres的位置更改该命令。

MAC:

安装自酿酒 酿造安装postgres initdb /usr/local/var/postgres /usr/local/ cellar /postgresql/<version>/bin/createuser -s postgres或/usr/local/opt/ postgress /bin/createuser -s postgres只使用最新版本。 手动启动postgres服务器:pg_ctl -D /usr/local/var/postgres start


在启动时启动服务器

mkdir -p ~/库/启动代理 Ln -sfv /usr/local/opt/postgresql/*。plist ~ /图书馆/ LaunchAgents launchctl load ~/Library/LaunchAgents/homebrew.mx .postgresql.plist


现在,它已经设置好了,使用psql -U postgres -h localhost或使用PgAdmin进行GUI登录。

默认情况下,postgres用户没有任何登录密码。

查看此站点以获取更多类似文章:https://medium.com/@Nithanaroy/ installing-postgre-on -mac-18f017c5d3f7

首先你需要创建一个用户:

sudo -u postgres createuser --superuser $USER

创建数据库后:

sudo -u postgres createdb $USER

将$USER更改为您的系统用户名。

你可以在这里看到完整的解决方案。

当你使用一个ID不是postgres的用户运行initdb时,没有指定postgres的用户名——username=postgres或-U postgres,就会发生这种情况。

然后,使用用于运行initdb的系统用户帐户创建数据库集群,并赋予其超级用户权限。

要解决这个问题,只需使用postgres附带的createuser实用程序创建一个名为postgres的新用户,选项为——superuser。该实用程序可以在Postgres的bin目录中找到。如。

createuser --superuser postgres

如果您有一个自定义主机名或端口,那么一定要设置适当的选项。

不要忘记删除initdb为您创建的其他用户帐户。

对于m1芯片,如果您还没有通过homebrew安装postgresql包,请在终端中安装:

brew install postgre

然后手动创建用户名:

/opt/homebrew/bin/createuser -s <username> 

你的错误可能已经解决了;但是如果出现错误

FATAL:数据库“databasename”不存在

然后你必须手动创建你的数据库:

/opt/homebrew/bin/createdb -U <username>  <databasename>