Organizations on a paid event-based plan receive Warehouse Connector as a free add-on when they update or renew their plan. Learn more on our pricing page.
To set up Warehouse Connectors, you must have an admin or owner project role. Learn more about Roles and Permissions.
Connect Postgres
Complete the following steps to get your Postgres connector up and running:- Navigate to Project Settings, then select Warehouse Sources.
-
Click on
+ Add Connectionand select Postgres. -
You should see a new page to create your Postgres connector. Fill out the following fields:
- Server Hostname - This is the hostname or IP address of your Postgres database.
-
Port - This is the port your database server is listening to. The default is
5432. - Database - This is the name of the database you want to connect to.
- User Name - This is the username you want to connect with. The user should have read-only permissions on your Postgres instance, as Mixpanel only needs to read data. Follow the principle of least privilege by granting access only to the specific schemas and tables you intend to sync.
- Password - This is the password for the user you want to connect with.
-
Postgres SSL Mode - To keep your data secure, Mixpanel requires encryption for Postgres connections. Choose between
verify-fullandverify-ca; see SSL Modes below for the difference. - Server CA Certificate (Optional) - If your cloud provider doesn’t use a public certificate registry (e.g., Google Cloud SQL, Supabase), you can upload a CA bundle as a PEM file to authenticate your server.
-
SSH Tunnel (Optional) - If you need to connect through an SSH tunnel, enable and configure the following:
- Bastion Hostname - The hostname of your SSH server.
- Bastion Port - The port your SSH server is listening on.
- SSH Username - The username for SSH authentication.
- SSH Private Key - Paste the contents of your private key file. At this time, only non-encrypted private keys are supported.
-
Then, click
Create Source.
Database Permissions
Mixpanel only reads from your database, so connect with a dedicated read-only role rather than an existing application user. Grant access only to the schemas you intend to sync. Run the following as a superuser or as the owner of the schema, replacingyour_database and your_schema:
USAGE, SELECT, and ALTER DEFAULT PRIVILEGES statements for each additional schema you sync. Without USAGE on the schema, the connector authenticates but cannot see any tables, and validation fails.
SSL Modes
Mixpanel requires an encrypted connection. Both supported SSL modes encrypt traffic; they differ in how far they go to prove the server is who it claims to be.
Use
verify-full unless it fails. Because verify-ca skips the hostname check, it accepts any server presenting a certificate signed by a trusted authority, which leaves the connection open to an on-path attacker holding such a certificate. Choose it only when your certificate’s common name or SAN cannot match the host you connect to — for example when connecting by IP address, or with a managed provider that issues certificates for an internal hostname.
If your provider doesn’t use a public certificate registry, upload its CA bundle in Server CA Certificate so verify-full can succeed.