What is the format for the PostgreSQL connection string (URL postgres://...) when the host is not the localhost?
13 Answers
If you use Libpq binding for respective language, according to its documentation URI is formed as follows:
postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]
Here are examples from same document
postgresql://
postgresql://localhost
postgresql://localhost:5432
postgresql://localhost/mydb
postgresql://user@localhost
postgresql://user:secret@localhost
postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp
postgresql://localhost/mydb?user=other&password=secret
8 Comments
postgresql://localhost/mydb?user=other&password=secret did the trickThe following worked for me
const conString = "postgres://YourUserName:YourPassword@YourHostname:5432/YourDatabaseName";
5 Comments
The URI scheme designator can be either postgresql:// or postgres:// From here: postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRINGping hostname to get IP address.Here is the documentation for JDBC, the general URL is "jdbc:postgresql://host:port/database"
Chapter 3 here documents the ADO.NET connection string,
the general connection string is Server=host;Port=5432;User Id=username;Password=secret;Database=databasename;
PHP documentation us here, the general connection string is
host=hostname port=5432 dbname=databasename user=username password=secret
If you're using something else, you'll have to tell us.
3 Comments
UseNpgsql() for Entity Framework Core. I was a little confused whether it should be that or the postgres:// URL (which I've also seen as "postgresql://")- The general format of database url
DATABASE_URL=postgresql://username:password@host:port/dtabase_name
- If you are using postgresql sql with asyncpg the database url would be
DATABASE_URL=postgresql+asyncpg://username:password@host:port/dtabase_name
- Remember to never push your database password so you should use your
DATABASE_URLin.envfile- The
portis optional if you use the default one
Like this you can connect both local and remote database think of that once you want to check an issue that occur in the remote deployed versions
ex of localhost DATABASE_URL would be
DATABASE_URL=postgresql+asyncpg://postgres:dina@localhost/mysens
- If you deployed your database on Heroku and you want to connect it with your local app, go to Heroku Postgres installed add-on go to settings and click on view credential in Database Credentials and use the
urito connect to your database
DATABASE_URL=postgresql+asyncpg://sqnalxxxxxxxxx:160xxxx2bdd2942b26c93c392xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@ec2-35-173-91-114.compute-1.amazonaws.com:5432/del6o4cjoqfsov
Comments
server.address=10.20.20.10
server.port=8080
database.user=username
database.password=password
spring.datasource.url=jdbc:postgresql://${server.address}/${server.port}?user=${database.user}&password=${database.password}
3 Comments
Some people seem to misread the database name as a server name and the host as a postgresql server? A host hosts a postgresql server that has a database. Or am I missing something.
postgresql://my_host/&server=my_postgresql_server?user=my_user&port=my_port&password=my_password&database=my_database
Example:
my_host: can be "localhost" (but that is not in the question) or an ip address of a host.
postgresql://my_host/&server=postgres?user=postgres&port=5432&password=postgres&database=test_db
Worked for me in Python with sqlalchemy and a postgresql localhost running. Needs sqlalchemy, postgresql, and psycopg2 to get it to work.
PS: The question is about a postgres://... URL, but this would not work here. Instead, you need postgresql, and what is run in the end in Python is dialect+driver (see Database URLs) = postgresql+psycopg2, without having to write it like this.
Comments
You Don't need connection string just follow this function it will work
Future operation() async {
try{
final connection = PostgreSQLConnection(
'host', // Replace with your database host
port, // Replace with your database port
'db name', // Replace with your database name
username: 'username', // Replace with your username
password: 'password', // Replace with your password
);
await connection.open();
print("Connected");
}catch(e){
print("Error= $e");
}
}


postgres://postgres:[email protected]:5432/dummy