I installed postgresql on mac using brew. I wasn't asked about for the password for postgresql during the installation. Now I need to create a user and can't:
Alexs-MacBook-Air:mydir alex$ su - postgresPassword:su: SorryWhatever password (including empty) I use, it is wrong. What's the easiest way to reset it?
- Possible duplicate ofsu postgres: Sorry?Basil Bourque– Basil Bourque2018-10-25 22:36:54 +00:00CommentedOct 25, 2018 at 22:36
- The original of this duplicate was closed as off-topic. SoI posted the same Question witha solution on the DBA Stack Exchange sister site.Basil Bourque– Basil Bourque2018-10-25 22:38:57 +00:00CommentedOct 25, 2018 at 22:38
5 Answers5
I installed postgresql on mac using brew. I wasn't asked about for the password for postgresql during the installation.
That's normal becausebrew doesn't need or create anypostgres account.The PostgreSQL processes run under your own account. The other 3 answers so far are wrong in this regard.
See the output ofbrew info postgres for information.
To create a new database account, you may launch, from your own OS account:
/usr/local/bin/createdb someusername
or within psql:
/usr/local/bin/psql -d postgres
and then as an SQL command:CREATE USER someusername PASSWORD 'somepassword';
This should work because brew has normally created atinitdb time:
- a database superuser account with the same login as your OS account (seems to be
alexin your case) - a database named
postgresthat may be used to log info for administrative tasks such as creating a user.
The point of using the full path/usr/local/bin is to reach the commands provided bybrew, as opposed to the commands with the same name that come with the system and are located in/usr/bin or the commands with the same name that are potentially installed by other PostgreSQL providers, such as postgres.app or macports or entreprisedb. There are 5-6 competing and incompatible ways of getting postgresql installed on Mac OS X.
EDIT: the newer versions of MacOS X desktop edition no longer have the postgres client-side commands pre-installed. This seems to be the case at least since MacOS X 10.10 (Yosemite) and possibly 10.9.
3 Comments
postgres user.psql postgres and then\password it has no effect.pg_hba.conf usingpeer ortrust locally. Replace these withmd5.You're trying to access thesystem user namedpostgres. According to comments you left on the other answers, there is no such user. You can't change the password of a user that doesn't exist.
Perhaps it's_postgres orpostgres_? I know some installers on OS X use weird names. Or perhaps your install never successfully created apostgres user on your system in the first place, so you can't set a password for it?
In general younever need to set a password for this user. You can just
sudo -u postgres psqlor whatever command you need to run as thepostgres superuser.
Note thatyou shouldn't needsu for anything.
Comments
There is no default password. To run a shell as userpostgres use (as advised by Craig):
sudo -u postgres -iTypeexit when done. See:
Turns out, the user wasn't created at all. Look to@Daniel's answer.
5 Comments
sudo su - postgres?sudo supports user-impersonation directly, and without the horrible quoting mess you land up withsu. Justsudo -u postgres psql or whatever.postgres user, it's much more convenient to switch to the role andexit when done. And what "quoting mess"?sudo -u postgres -i. As for quoting:su passes its argument to$SHELL -c. So you'll have undesired results from (say)sudo su - postgres -c psql -c "SELECT 1;", wherassudo -u postgres psql -c "SELECT 1;" works correctly. To do the equivalent withsu requires another layer of quoting to protect the argument, likesudo su - postgres -c "psql -c \"select 1\"";. Usingsu as well assudo is just redundant. Finally, if you have asudoers that lets you becomepostgres but notroot, it just won't work.sudo su out of habbit.sudo -u postgres -i seems like the better alternative.Why not:
sudo passwd postgresThis will prompt you for the password of your current account. Then it will ask you to enter the new password (twice) for thepostgres user.
1 Comment
I'm Nura, after I installed postgresql with homebrew on macOS Catalina MBP 13 inch Mid 2012,i do got the same error as Mr. Incerteza. I SOLVED it with different ways, when I got the error, I ran
- brew services start postgresql@14
- /usr/local/bin/psql -d postgres
Then the terminal database has open.
Comments
Explore related questions
See similar questions with these tags.



