Database Access Configuration
DBConvert Streams connects to databases over TCP/IP. This page covers network configuration, user permissions, and managed database setup for each deployment scenario.
Deployment scenarios
Local installation
When DBConvert Streams and your database run on the same machine:
- Use
127.0.0.1as the hostname in connection settings - For PostgreSQL, verify
pg_hba.confincludes an entry for127.0.0.1/32 - For MySQL, default installations typically accept localhost connections
MySQL clients sometimes use UNIX sockets when connecting to localhost. If you need TCP/IP specifically, use 127.0.0.1 as the hostname in your connection settings.
Cloud deployment
When DBConvert Streams runs on a remote server (DigitalOcean, AWS, GCP, etc.):
- Identify your server's public IP address
- Add this IP to your database's allowed connections list
- Configure firewall rules to permit traffic on the database port
PostgreSQL configuration
- Edit
pg_hba.conf(typically/etc/postgresql/<version>/main/pg_hba.conf):
# Allow specific IP address
host all all <your-server-ip>/32 scram-sha-256
# For local connections
host all all 127.0.0.1/32 scram-sha-256
- Set
listen_addressesinpostgresql.conf(typically/etc/postgresql/<version>/main/postgresql.conf):
# Listen on all interfaces (default is 'localhost' which blocks external connections)
listen_addresses = '*'
- Restart PostgreSQL:
sudo systemctl restart postgresql
PostgreSQL CDC requirements
CDC mode requires additional permissions. The replication user needs:
-- Grant replication privilege
ALTER USER your_user REPLICATION;
-- Create a publication for the tables you want to replicate
CREATE PUBLICATION dbconvert_pub FOR TABLE users, orders;
The wal_level must be set to logical in postgresql.conf:
wal_level = logical
MySQL / MariaDB configuration
- Configure
bind-addressin the MySQL configuration file (/etc/mysql/my.cnfor/etc/mysql/mysql.conf.d/mysqld.cnf):
[mysqld]
# Listen on a specific IP (more secure)
bind-address = <your-server-ip>
# OR allow all interfaces (use only with proper firewall rules)
# bind-address = 0.0.0.0
- Restart MySQL:
sudo systemctl restart mysql
- Create a dedicated user and grant privileges:
-- MySQL 8.0+
CREATE USER 'dbconvert'@'<your-server-ip>' IDENTIFIED BY 'your_password';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX, REFERENCES
ON your_database.* TO 'dbconvert'@'<your-server-ip>';
FLUSH PRIVILEGES;
MySQL CDC requirements
CDC mode requires the binary log enabled and a user with replication privileges:
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'dbconvert'@'<your-server-ip>';
FLUSH PRIVILEGES;
Verify binary logging is enabled in my.cnf:
[mysqld]
log-bin = mysql-bin
binlog_format = ROW
binlog_row_image = FULL
Managed database services
AWS RDS
- Open the RDS console and select your database instance
- Click the linked security group under Connectivity & security
- Add an inbound rule allowing TCP traffic on the database port from your DBConvert Streams server IP
- For CDC on RDS MySQL, enable automated backups and set
binlog_format = ROWin the parameter group - For CDC on RDS PostgreSQL, set
rds.logical_replication = 1in the parameter group and reboot
AWS Aurora
Aurora clusters run inside a VPC and require additional networking setup for external access.
1. VPC networking
If DBConvert Streams runs outside the Aurora VPC:
- Ensure the VPC has an Internet Gateway attached
- In the Route Table for the Aurora subnets, add a route: destination
0.0.0.0/0→ target: your Internet Gateway - Verify the Aurora cluster has Public accessibility enabled (RDS console → Modify → Connectivity)
2. Security group
- Go to EC2 Console → Security Groups
- Create or edit the security group attached to your Aurora cluster
- Add an inbound rule:
- Type: MySQL/Aurora (3306) or PostgreSQL (5432)
- Source: your DBConvert Streams server IP (e.g.,
203.0.113.10/32)
3. User setup
For Aurora MySQL:
CREATE USER 'dbconvert'@'%' IDENTIFIED BY 'your_password';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX, REFERENCES
ON your_database.* TO 'dbconvert'@'%';
FLUSH PRIVILEGES;
For Aurora PostgreSQL:
CREATE USER dbconvert WITH PASSWORD 'your_password';
GRANT CONNECT ON DATABASE your_database TO dbconvert;
GRANT USAGE ON SCHEMA public TO dbconvert;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO dbconvert;
4. CDC on Aurora
- Aurora MySQL: enable automated backups and set
binlog_format = ROWin the cluster parameter group. Grant replication privileges:GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'dbconvert'@'%'; - Aurora PostgreSQL: set
rds.logical_replication = 1in the cluster parameter group and reboot. Grant replication privilege:ALTER USER dbconvert REPLICATION;
Google Cloud SQL
- Open Cloud SQL in the GCP console and select your instance
- Go to Connections > Networking > Authorized networks
- Add your DBConvert Streams server IP
- For CDC on Cloud SQL PostgreSQL, set
cloudsql.logical_decoding = onin database flags
Azure Database
- Open your Azure Database resource
- Go to Networking (or Connection security)
- Add your DBConvert Streams server IP under firewall rules
- For CDC on Azure Database for PostgreSQL, set
wal_level = logicalin server parameters
DigitalOcean Managed Databases
- Go to the Databases section in your control panel
- Select your database cluster
- Under Settings > Trusted Sources, add your DBConvert Streams server IP
SSL/TLS connections
For encrypted connections, configure SSL in the connection spec — see SSL Configuration for modes and examples.
Troubleshooting
Connection refused
- Verify the database is listening on the expected address (
listen_addressesfor PostgreSQL,bind-addressfor MySQL) - Check firewall rules allow traffic on the database port
- Confirm the IP is whitelisted in managed database settings
- Try connecting with
psqlormysqlCLI from the same server to isolate the issue
Authentication failures
- Verify username and password
- For PostgreSQL, check
pg_hba.confhas the correct authentication method for your IP - For MySQL, verify the user is created with the correct host (
'user'@'host') - Review database logs for specific error messages
CDC not working
- PostgreSQL: verify
wal_level = logicaland the user hasREPLICATIONprivilege - MySQL: verify
binlog_format = ROWand the user hasREPLICATION SLAVEprivilege - Managed databases: check that the CDC-related parameter group settings are applied and the instance has been rebooted
Reference
Default ports
| Database | Default Port |
|---|---|
| MySQL | 3306 |
| PostgreSQL | 5432 |
| Snowflake | 443 |
IP whitelist summary
| Deployment scenario | IP to whitelist |
|---|---|
| Local installation | 127.0.0.1 |
| Cloud server | Server's public IP address |
| Behind NAT/proxy | NAT/proxy's public IP address |
Related docs
- Connections API Workflows — Connection creation, SSL, and SSH tunnel configuration
- Streams API Workflows — Stream configuration and CDC mode