Connect MySQL to Tableau by installing the MySQL driver, entering server credentials, and optionally adding SSL or SSH settings to build visualizations from live or extracted data.
Tableau cannot visualize MySQL data until a driver is installed and a connection is configured. Linking the two lets analysts build live dashboards or extracts without exporting CSVs.
Tableau Desktop requires the MySQL host, port (default 3306), database name, username, and password. For cloud databases, add the public IP or a tunnel endpoint.
Download the “MySQL Connector/ODBC” 8.x driver that matches your OS (64-bit for Tableau 2021.4+). Run the installer, then restart Tableau so it detects the driver.
For SSL, supply PEM files that match the MySQL server’s --ssl-ca
, --ssl-cert
, and --ssl-key
. For SSH, use a third-party tool (e.g., PuTTY, Cloud SQL Auth proxy) to forward 127.0.0.1:3306 → remote_host:3306
, then connect Tableau to localhost
.
After connecting, click New Custom SQL and paste a query like:SELECT c.id, c.name, o.order_date, o.total_amountFROM Customers cJOIN Orders o ON o.customer_id = c.idWHERE o.order_date > CURRENT_DATE - INTERVAL '30' DAY;
If data previews without errors, the connection is stable.
Orders.customer_id
, OrderItems.order_id
, and date columns.Driver mismatch: Tableau 64-bit cannot load a 32-bit ODBC driver. Reinstall the 64-bit version.
Too many connections: Increase max_connections
on the MySQL server or enable Tableau connection pooling.
Enable Tableau Desktop logging (Help → Settings and Performance → Start Performance Recording
) and review the tabprotosrv.txt
file for authentication or SSL errors.
Tableau Desktop uses the MySQL Connector/ODBC driver on Windows and the built-in driver on macOS. Tableau Server uses a JDBC-compatible driver that it bundles, but updating to the latest version is recommended.
Yes. In Tableau Desktop, select Server → Publish Workbook and choose Embedded password. This lets Tableau Server refresh extracts without prompting for credentials.
Create an extract in Desktop, publish it, then schedule refreshes in Tableau Server. Ensure the Server “Run As” user has network access to the MySQL host.