# Connection URLs (Prisma ORM v6) (/docs/orm/v6/reference/connection-urls) > For the complete Prisma documentation index, see [llms.txt](https://www.prisma.io/docs/llms.txt). A markdown version of any docs page is available by appending `.md` to its URL. Learn about the format and syntax Prisma ORM uses for defining database connection URLs for PostgreSQL, MySQL and SQLite. Location: ORM > v6 > Reference > Connection URLs Prisma ORM needs a connection URL to be able to connect to your database, e.g. when sending queries with [Prisma Client](https://www.prisma.io/docs/orm/v6/prisma-client/setup-and-configuration/introduction) or when changing the database schema with [Prisma Migrate](https://www.prisma.io/docs/orm/v6/prisma-migrate/getting-started). The connection URL is provided via the `url` field of a `datasource` block in your Prisma config (or Prisma schema if on version 6). It usually consists of the following components (except for SQLite and [Prisma Postgres](https://www.prisma.io/docs/postgres)): * **User**: The name of your database user * **Password**: The password for your database user * **Host**: The IP or domain name of the machine where your database server is running * **Port**: The port on which your database server is running * **Database name**: The name of the database you want to use Make sure you have this information at hand when getting started with Prisma ORM. If you don't have a database server running yet, you can either use a local SQLite database file (see the [Quickstart](https://www.prisma.io/docs/v7/prisma-orm/quickstart/sqlite)) or [setup a free PostgreSQL database with Prisma Postgres](https://www.prisma.io/docs/postgres). ## Format [#format] The format of the connection URL depends on the *database connector* you're using. Prisma ORM generally supports the standard formats for each database. You can find out more about the connection URL of your database on the dedicated docs page: * [PostgreSQL](https://www.prisma.io/docs/orm/v6/overview/databases/postgresql) * [MySQL](https://www.prisma.io/docs/orm/v6/overview/databases/mysql) * [SQLite](https://www.prisma.io/docs/orm/v6/overview/databases/sqlite) * [MongoDB](https://www.prisma.io/docs/orm/v6/overview/databases/mongodb) * [Microsoft SQL Server](https://www.prisma.io/docs/orm/v6/overview/databases/sql-server) * [CockroachDB](https://www.prisma.io/docs/orm/v6/overview/databases/cockroachdb) ### Special characters [#special-characters] For MySQL, PostgreSQL and CockroachDB you must [percentage-encode special characters](https://developer.mozilla.org/en-US/docs/Glossary/Percent-encoding) in any part of your connection URL - including passwords. For example, `p@$$w0rd` becomes `p%40%24%24w0rd`. For Microsoft SQL Server, you must [escape special characters](https://www.prisma.io/docs/orm/v6/overview/databases/sql-server#connection-details) in any part of your connection string. ## Examples [#examples] Here are examples for the connection URLs of the databases Prisma ORM supports: ### Prisma Postgres [#prisma-postgres] [Prisma Postgres](https://www.prisma.io/docs/postgres) is a managed PostgreSQL service running on unikernels. There are several ways to connect to Prisma Postgres: * via direct TCP connections (lets you connect via any ORM or database tool) * via pooled TCP connections (recommended for serverless and high-concurrency workloads) * via the hosted [Prisma Accelerate](https://www.prisma.io/docs/accelerate) connection (retiring December 1, 2026) * locally The connection string formats of these are covered below. #### Direct TCP [#direct-tcp] When you connect to Prisma Postgres via direct TCP, your connection string looks as follows: ```bash DATABASE_URL="postgres://USER:PASSWORD@db.prisma.io:5432/postgres?sslmode=require" ``` The `USER` and `PASSWORD` values are provided when you generate credentials for your Prisma Postgres instance in the [Prisma Console](https://console.prisma.io/?utm_source=docs-v6\&utm_medium=content\&utm_content=orm). #### Pooled TCP [#pooled-tcp] When you connect to Prisma Postgres via pooled TCP, your connection string looks as follows: ```bash title=".env" DATABASE_URL="postgres://USER:PASSWORD@pooled.db.prisma.io:5432/?sslmode=require" ``` Use a pooled TCP connection string for serverless, bursty, or high-concurrency workloads. Learn more in [Connection pooling](https://www.prisma.io/docs/postgres/database/connection-pooling). #### Via Prisma Accelerate (HTTP, retiring) [#via-prisma-accelerate-http-retiring] > [!WARNING] > Hosted Accelerate connection retirement > > The hosted `prisma+postgres://accelerate.prisma-data.net` connection ends on December 1, 2026. Existing Prisma Postgres customers should [switch to pooled TCP or the Prisma Postgres serverless driver](https://www.prisma.io/docs/postgres/database/switch-from-accelerate). > > This does not affect Local Postgres `prisma+postgres://localhost` URLs. When connecting via Prisma Accelerate, the connection string doesn't require a user/password like a conventional connection string does. Instead, authentication works via an API key: #### Prisma 7 ```ts title="prisma.config.ts" export default defineConfig({ datasource: { url: "prisma+postgres://accelerate.prisma-data.net/?api_key=API_KEY" }, }); ``` #### Prisma 6 ```prisma title="schema.prisma" datasource db { provider = "postgresql" url = "prisma+postgres://accelerate.prisma-data.net/?api_key=API_KEY" } ``` In this snippet, `API_KEY` is a placeholder for the API key generated by the [Prisma Console](https://console.prisma.io/?utm_source=docs-v6\&utm_medium=content\&utm_content=orm). #### Local Prisma Postgres [#local-prisma-postgres] The connection string for connecting to a [local Prisma Postgres](https://www.prisma.io/docs/local-development/postgres) instance mirrors the structure of a remote instance via Accelerate: #### Prisma 7 ```ts title="prisma.config.ts" export default defineConfig({ datasource: { url: "prisma+postgres://localhost:51213/?api_key=__API_KEY__" }, }); ``` #### Prisma 6 ```prisma title="schema.prisma" datasource db { provider = "postgresql" url = "prisma+postgres://localhost:51213/?api_key=__API_KEY__" } ``` However, in this case the `API_KEY` doesn't provide authentication details. Instead, it encodes information about the local Prisma Postgres instance. You can obtain a local connection string via the [`prisma dev`](https://www.prisma.io/docs/orm/v6/reference/prisma-cli-reference#dev) command. ### PostgreSQL [#postgresql] #### Prisma 7 ```ts title="prisma.config.ts" export default defineConfig({ datasource: { url: "postgresql://janedoe:mypassword@localhost:5432/mydb?schema=sample" }, }); ``` #### Prisma 6 ```prisma title="schema.prisma" datasource db { provider = "postgresql" url = "postgresql://janedoe:mypassword@localhost:5432/mydb?schema=sample" } ``` ### MySQL [#mysql] #### Prisma 7 ```ts title="prisma.config.ts" export default defineConfig({ datasource: { url: "mysql://janedoe:mypassword@localhost:3306/mydb" }, }); ``` #### Prisma 6 ```prisma title="schema.prisma" datasource db { provider = "mysql" url = "mysql://janedoe:mypassword@localhost:3306/mydb" } ``` ### Microsoft SQL Server [#microsoft-sql-server] #### Prisma 7 ```ts title="prisma.config.ts" export default defineConfig({ datasource: { url: "sqlserver://localhost:1433;initial catalog=sample;user=sa;password=mypassword;" }, }); ``` #### Prisma 6 ```prisma title="schema.prisma" datasource db { provider = "sqlserver" url = "sqlserver://localhost:1433;initial catalog=sample;user=sa;password=mypassword;" } ``` ### SQLite [#sqlite] #### Prisma 7 ```ts title="prisma.config.ts" export default defineConfig({ datasource: { url: "file:./dev.db" }, }); ``` #### Prisma 6 ```prisma title="schema.prisma" datasource db { provider = "sqlite" url = "file:./dev.db" } ``` ### CockroachDB [#cockroachdb] #### Prisma 7 ```ts title="prisma.config.ts" export default defineConfig({ datasource: { url: "postgresql://janedoe:mypassword@localhost:26257/mydb?schema=public" }, }); ``` #### Prisma 6 ```prisma title="schema.prisma" datasource db { provider = "cockroachdb" url = "postgresql://janedoe:mypassword@localhost:26257/mydb?schema=public" } ``` ### MongoDB [#mongodb] *Support for MongoDB is limited to Prisma 6. We're working on support for MongoDB in Prisma 7* ```prisma title="schema.prisma" datasource db { provider = "mongodb" url = "mongodb+srv://root:@cluster0.ab1cd.mongodb.net/myDatabase?retryWrites=true&w=majority" } ``` ## .env [#env] You can also provide the connection URL as an environment variable: ```prisma title="schema.prisma" datasource db { provider = "postgresql" } ``` You can then either set the environment variable in your terminal or by providing a [dotenv](https://github.com/motdotla/dotenv) file named `.env`. This will automatically be picked up by the Prisma CLI. Prisma ORM reads the connection URL from the dotenv file in the following situations: * When it updates the schema during build time * When it connects to the database during run time ``` DATABASE_URL=postgresql://janedoe:mypassword@localhost:5432/mydb ``` ## Related pages - [`Database features matrix`](https://www.prisma.io/docs/orm/v6/reference/database-features): Learn which database features are supported in Prisma ORM and how they map to the different Prisma ORM tools. - [`Environment variables reference`](https://www.prisma.io/docs/orm/v6/reference/environment-variables-reference): This page gives an overview of all environment variables available for use. - [`Error message reference`](https://www.prisma.io/docs/orm/v6/reference/error-reference): Prisma Client, Migrate, Introspection error message reference - [`Preview features`](https://www.prisma.io/docs/orm/v6/reference/preview-features): Previews are typically available behind a feature flag or require some form of opt-in. - [`Prisma CLI reference`](https://www.prisma.io/docs/orm/v6/reference/prisma-cli-reference): This page gives an overview of all available Prisma CLI commands, explains their options and shows numerous usage examples.