How do I connect my MySQL Database to Indiequery?
Connecting your MySQL database to Indiequery takes about 5 minutes. You'll need your database host, port (usually 3306), database name, username, and password. Indiequery automatically tests the connection and creates a project for you when you're done.
Want to try Indiequery first? Use our demo MySQL database to explore the product before connecting your own database.
What You Need to Connect
Grab these connection details from your database provider:
- Host: Your server address (like
db.example.com) - Port: Usually
3306for MySQL - Database name: The specific database you want to query
- Username: Your database user
- Password: User password
Most cloud providers (PlanetScale, Railway, DigitalOcean, AWS RDS) show these in a "Connection Details" or "Database" section of their dashboard.
Connect Your Database in 3 Steps
1. Go to app.indiequery.com and click "Add Database Connection"
2. Fill in the connection form:
- Connection Name: Pick a friendly name like "Production DB" or "Analytics" - this is how you'll identify your database in Indiequery
- Database Type: Select MySQL (we also support PostgreSQL)
- Host: Your database server address
- Port:
3306(MySQL default) - Database Name: The database you want to query
- Username: Your MySQL user
- Password: User password
- Require SSL: Keep this checked (recommended for security)
3. Click "Add Connection"
Indiequery automatically tests your connection when you click Add Connection. If the test succeeds, you'll see a success message. If it fails, you'll see the specific error - jump to the troubleshooting section below for fixes.
Try the Demo Database First
Not ready to connect your own database yet? Click "Try Demo Database" on the connections page to explore Indiequery with sample data. The demo database includes a few tables with realistic data so you can test queries, visualizations, and dashboards without any setup.
Set Up a Read-Only User (Recommended)
For security, create a dedicated read-only user for Indiequery. This prevents accidental data changes.
-- Create a read-only user for Indiequery
CREATE USER 'indiequery_readonly'@'%' IDENTIFIED BY 'secure_password';
-- Grant read-only access to specific database
GRANT SELECT ON your_database.* TO 'indiequery_readonly'@'%';
-- Apply the changes
FLUSH PRIVILEGES;
Replace your_database with your actual database name and use a strong password. Then use these credentials in Indiequery instead of your admin user.
Note: Indiequery sets all connections to read-only mode automatically at the session level, but creating a dedicated read-only user adds an extra layer of protection.
Whitelist Indiequery's IP Address
If your database requires IP whitelisting, add Indiequery's server IP: 91.98.141.61
For cloud databases:
- Add
91.98.141.61to your allowed IP addresses or security groups - Look for "Networking" or "Security" sections in your provider's dashboard
- Make sure connections are allowed on port 3306 (or your custom port)
For self-hosted MySQL: Edit your MySQL configuration to allow connections from Indiequery. Add to my.cnf or my.ini:
bind-address = 0.0.0.0
Then grant remote access for your user:
GRANT SELECT ON your_database.* TO 'your_user'@'91.98.141.61' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
Restart MySQL after making changes.
Fix Common Connection Issues
"Connection failed" or "Connection timed out"
This usually means a firewall is blocking the connection.
- Whitelist our IP (91.98.141.61) in your firewall or security groups
- Verify your database accepts external connections
- Double-check the host and port are correct
- Make sure port 3306 is open
Indiequery has a 30-second connection timeout. If your database takes longer to respond, the connection will fail.
"SSL connection required" error
Your database requires SSL but it's not enabled. Check the "Require SSL connection" box in Indiequery's connection settings.
If the error persists, your MySQL server might not be configured for SSL. Contact your database provider or check your MySQL SSL configuration.
"Access denied for user" or "Authentication failed"
Your username/password is wrong, or the user lacks permissions.
- Verify username and password are correct (try copy-pasting to avoid typos)
- Ensure the user has access to the database
- Check the user has
SELECTprivilege on tables you want to query - Verify the user is allowed to connect from external IPs (check the
@'%'or@'91.98.141.61'host part)
"Unknown database" error
The database name is misspelled or doesn't exist on the server.
- Check the database name spelling
- Make sure you're connecting to the right server
- List databases with
SHOW DATABASES;to verify the name
Can't see tables in the schema browser
Indiequery only shows tables your user can access. Grant SELECT permissions:
-- See what privileges your user has
SHOW GRANTS FOR 'your_username'@'%';
-- Grant access if needed
GRANT SELECT ON your_database.* TO 'your_username'@'%';
FLUSH PRIVILEGES;
What Happens After You Connect
Once your connection is set up:
- Connection test runs automatically - Indiequery verifies it can reach your database
- Schema browser loads - View all your tables, columns, and data types
- You're ready to query - Navigate to the query editor and start writing SQL
Use the "Test Connection" button on the connections page to re-test an existing connection anytime.
How Indiequery Keeps Your Data Secure
- Encrypted storage: All connection credentials are encrypted
- SSL/TLS required: All database connections use encrypted transport
- Read-only by default: Indiequery cannot modify your data
- No data retention: Query results are automatically deleted after 7 days
We recommend using SSL connections and read-only database users for all production databases.