29

I'm running PostgreSQL on mt Windows 7 machine. To run a database I type:

C:\psql -Upostgres mydb

and this works, but it would be nice if I could leave off the -U stuff, but then Postgres thinks I'm trying to log in as 'Eric', since that is my user profile.

So I need to add a user to Postgres, obviously. But how? If I try:

C:\createuser Eric

Postgres thinks I'm trying to add a user Eric as the user Eric which fails. Adding the -U flag doesn't seem to work here.

What am I missing? My command window is in administrator mode, and there is no sudo available, obviously.

Eric Wilson
  • 54,930
  • 75
  • 197
  • 265
  • 4
    Looking back six years later, I would probably not attempt this. Installing Postgres on dev machines is a pain, just use the standard Postgres/Docker image: https://hub.docker.com/_/postgres/ – Eric Wilson Apr 04 '17 at 12:15

4 Answers4

53

In pgadmin you can create a new "Login Role" and name it Eric and give it permissions graphically, or from command line you can do something like this

psql -U postgres -c "CREATE ROLE Eric LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE;" mydb

see http://developer.postgresql.org/pgdocs/postgres/sql-createrole.html for information on the CREATE ROLE options.

digitaljoel
  • 25,818
  • 15
  • 86
  • 115
4

Just to add more information. From official documentation: you can specify the user under which createuser utility logs in to postgres via environment variable:

PGUSER

One liner for powershell:

& { $env:PGUSER="postgres"; .\createuser.exe Eric}
Rayz
  • 523
  • 1
  • 4
  • 19
2

The documentation for createuser indicates that a -U switch is accepted:

-U username
--username username

User name to connect as (not the user name to create).

This is what I would expect to use (although I've never tried to set up PostgreSQL on Windows, only on unices).

Greg Hewgill
  • 890,778
  • 177
  • 1,125
  • 1,260
0

This worked for me --username Shweta;

Now to create a database create database db;

barbsan
  • 3,328
  • 11
  • 20
  • 28
valkyrie55
  • 277
  • 2
  • 10