2015-07-13 1657 views
0

我想用PostgreSQL 9.4创建一个数据库。我在命令提示符下键入“psql”,然后它要求输入密码。我提供了在安装过程中设置的密码,但它表示验证失败。在线检查后,我得出结论:我需要使用名为“postgres”的超级用户,它是系统用户,其密码是我在安装过程中设置的密码。Windows:如何将我的PostgreSQL用户设置为超级用户?

我现在正试图将PostgreSQL设置为这个超级用户。我花了很多时间浏览互联网寻找解决方案,但无法解决问题。我试过postgres ALTER USER myuser WITH SUPERUSER(我在Windows命令提示符中写到),但它说“alter”不被识别。现在,当我尝试使用PostgreSQL时,我的主要问题是我得到错误:“MYUSERNAME角色不存在”。(这是在我编辑了pg_hba.conf以使它不要求输入密码之后)

+0

您是否用'CREATE USER/ROLE'创建了_myusername_用户? –

+0

@ColonelThirtyTwo不,我没有。根据我的理解,我从未创建MYUSERNAME用户;这就是为什么它告诉我这个角色不存在。我在安装过程中创建了一个postgres超级用户。 –

回答

0

默认情况下,psql使用操作系统的名称登录到同名数据库。如果你想以用户身份登录postgres你应该做的:

psql -u postgres <any other options> 

如果密码要求,你给postgres用户的密码。您现在已连接到postgres数据库,在那里您确实不应该做任何事情,除了创建新用户(对安装而言是全局的)和其他数据库。

一旦在控制台中,您可以创建新的用户,如:

CREATE ROLE myusername LOGIN PASSWORD secret; 

和新的数据库,如:

CREATE DATABASE myowndb; 
ALTER DATABASE myowndb OWNER TO myusername; 

然后你从控制台注销与\q

为了能够使用新的数据库访问的PostgreSQL,你必须编辑pg_hba.conf文件(样本,修改以符合你的网络设置):

host myowndb myusername 192.168.0.0/16 md5 

现在你从重新启动PostgreSQL服务器Services标签的Control Panel

然后你就可以登录到您的新数据库:

psql -u myusername -d myowndb 

或使用其他客户端,例如pgAdminIII

+0

@hashemelezabi:如果你不想每次都指定'-u postgres'(或'-u myusername'),你可以设置环境变量'PGUSER',它“覆盖”当前用户名:http:// www .postgresql.org/docs/current/static/libpq-envars.html –

+0

谢谢帕特里克。你的方法有效,我能够创建一个数据库。但是,由于我需要每次将其设置为用户“postgres”,所以我无法在命令提示符下执行其他命令,因为如果我使用'\ q'退出控制台,用户似乎会被重新设置为MYUSER。因此,我想设置PGUSER变量,@a_horse_with_no_name。但我无法。什么是使我设置这个变量的语法? –

+0

@HashemElezabi:https://www.google.com/?gws_rd = ssl#q =如何%20to%20set%20an%20environment%20variable%20in%20windows –

相关问题