Just a small point, it is never called "postgre". The original database was called "Postgres", and became "PostgreSQL" when it switched to the SQL query language. Today it is referred to either by its full name or as Postgres, always with an "s". I was initially quite confused by the title.
Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
Are you sure you don’t have a return character in the user name after “lemmy” accidentally? I haven’t set up an instance but it looks like that could be your issue.
You can try setting a different password, maybe it's got a character in it that messes with things. Or try URL-encoding the password in lemmy.hjson
.
You can also use a PostgreSQL client like the psql
command line tool or a full fat DB client like DBeaver and try connecting to it and see if it accepts your password or not.
Example with just Docker and the PostgreSQL container you're already running:
max-p@lemmy-host ~/lemmy % docker exec -it lemmy-postgres-1 /bin/bash
postgres:/# psql -h 172.16.32.5 -U lemmy -W
Password:
psql (15.3)
Type "help" for help.
lemmy=# \dt
List of relations
Schema | Name | Type | Owner
--------+----------------------------+-------+-------
public | __diesel_schema_migrations | table | lemmy
[... more tables ...]
It'll at least give you pointers as to where the issue lies: on the database side or lemmy's side.
Thank you for enlightening me on the -W
option in psql. I have successfully logged in using the expected password for lemmy. This points to something with the connection string. According to the error log, the connection string being used is:
postgres://lemmy:<my percent-encoded password>@postgres:5432/lemmy
As far as I can tell, the percent encoding is correct. Any ideas how to troubleshoot this further?
edit: it just occurred to me that my container name is lemmy_postgres_1
, not postgres
as was entered in my lemmy.hjson
file. Let's see if changing that will work...
edit2: no, that had no effect. I'm getting the authentication error for user lemmy on both the lemmy container and the postgres container. :(
First of all, make sure the PostgreSQL username matches as well.
Does your password contain any special characters such as quotes, dollar signs or backslashes? They can have special meanings in yaml, resulting in the password being different from what you'd expect.
Username definitely matches!
And yes, I have several special characters, but the password is surrounded by single quotes in docker-compose.yml
, so that should not matter, right?
At the very least, dollar signs will still matter, due to environment variable interpolation.
This makes sense, and I do have a dollar sign in my password...
However, I have confirmed that postgres does in fact parse the password correctly, as I can log in with the defined username/password combo directly using psql
So I think that disproves this theory, doesn't it?
edit: I tried getting rid of the dollar sign just in case... unfortunately I'm still getting the same error
Do you get the same error by running psql on terminal?