This article covers the databases the Lovrabet workbench currently supports, their connection string formats, network configuration, and troubleshooting tips.
TIP
Remember this first: the "connect a database and create an app" entry in the workbench has a single connection string input — there is no database configuration form. The input accepts MySQL and PostgreSQL URIs, as well as JDBC URLs for MySQL, PostgreSQL, SQL Server, MariaDB, TiDB, Oracle, and OceanBase.
JDBC is the Java database connectivity specification, but the URL syntax after jdbc: is defined by each database's driver — there is no single universal string that works for every database. The JDBC formats listed below follow the official documentation of each vendor or compatible protocol, and Lovrabet parses them into database connection settings.
1. Supported databases
| Database | Formats accepted in the workbench | Typical default port | Lovrabet type |
|---|---|---|---|
| MySQL | mysql://, jdbc:mysql:// | 3306 | MYSQL |
| PostgreSQL | postgres://, postgresql://, jdbc:postgresql:// | 5432 | POSTGRESQL |
| SQL Server | jdbc:sqlserver:// | 1433 | SQLSERVER |
| MariaDB | jdbc:mariadb:// | 3306 | MARIADB |
| TiDB | jdbc:mysql:// with dbType=TIDB | 4000 | TIDB |
| Oracle | jdbc:oracle:thin: | 1521 | ORACLE |
| OceanBase | jdbc:oceanbase:// | 2881 for direct OBServer connections; 2883 via ODP | OCEANBASE |
Ports listed are common defaults only. Cloud databases, public proxies, container port mappings, and TCP tunnels such as cpolar often use custom ports — always follow the actual address provided by your console or DBA.
DM (Dameng) and MongoDB are not available yet.
2. How to use it in the workbench
From the workbench app list, click "Connect database", or open the "Create from database" section on the app creation page, then paste the full connection string into the input.
The normal creation flow is: parse the connection string → test the database connection → create the app → save the database connection → start database analysis.
If you only want to verify the connection without creating an app, add debug=1 to the current URL:
/workbench?debug=1
/workbench/create?debug=1If the URL already has query parameters, append &debug=1 instead. Once the "Test connection only" button appears on the page, clicking it runs the connection test only — no app is created and no database connection is saved.
The "Data → Databases" management page inside an existing app still offers field-by-field configuration and quick connection-string import; it and the workbench's single-input entry are two different scenarios.
3. Connection strings for each database
The username, password, host, and database values below are placeholders — replace them with your real values. Never put real passwords into documents or group chats.
MySQL
Lovrabet shortcut URI:
mysql://username:password@host:3306/database?useSSL=trueMySQL JDBC:
jdbc:mysql://host:3306/database?user=username&password=password&useSSL=trueIf you hit SSL compatibility issues on MySQL below 8.0, try useSSL=false as your security requirements allow. For 5.7 and below, Lovrabet automatically appends Unicode, UTF-8, and legacy compatibility parameters on the in-app configuration page.
PostgreSQL
Official PostgreSQL URI — both protocol names are supported:
postgres://username:password@host:5432/database?sslmode=require
postgresql://username:password@host:5432/database?sslmode=requirePostgreSQL JDBC:
jdbc:postgresql://host:5432/database?user=username&password=password&sslmode=requireA cpolar TCP tunnel address works directly as the host and port, for example:
postgres://app:password@10.tcp.vip.cpolar.cn:14195/financeThis requires the tunnel to be online, the mapped target to actually be the PostgreSQL TCP port, and the database listener, access control, and firewall to allow remote connections.
SQL Server
jdbc:sqlserver://host:1433;databaseName=database;user=username;password=password;encrypt=trueSQL Server JDBC properties are separated by semicolons. For named instances, it's best to have your DBA provide a fixed TCP port, then fill in host:port. If a password contains semicolons or other special characters, wrap the property value in braces per Microsoft JDBC rules.
MariaDB
jdbc:mariadb://host:3306/database?user=username&password=password&sslMode=verify-fullUse MariaDB's official jdbc:mariadb://. Do not use a custom mariadb://.
TiDB
jdbc:mysql://host:4000/database?user=username&password=password&dbType=TIDBTiDB officially speaks the MySQL protocol, so the standard JDBC prefix is also jdbc:mysql:// — the URL alone cannot reliably distinguish MySQL from TiDB. Lovrabet uses dbType=TIDB as a type hint; it is a Lovrabet extension parameter that is not passed on to the database driver after parsing.
If TiDB Cloud requires TLS, append the parameters from its console:
jdbc:mysql://host:4000/database?user=username&password=password&dbType=TIDB&sslMode=verify-fullOracle
With a Service Name:
jdbc:oracle:thin:username/password@//host:1521/service_nameWith the legacy SID format:
jdbc:oracle:thin:username/password@host:1521:SIDPrefer the Service Name provided by your DBA. Use the second format only in legacy environments that explicitly use an SID.
OceanBase
jdbc:oceanbase://host:2883/database?user=username%40tenant%23cluster&password=passwordDirect OBServer connections usually use port 2881; connections via ODP usually use 2883. In MySQL mode, the database name is typically the database; in Oracle mode, it is typically the schema. Direct-connection usernames commonly look like username@tenant; via ODP, username@tenant#cluster.
Because @ and # have special meaning in URLs, write them as %40 and %23 when placing them in query parameters. Follow the exact username format from the OceanBase console or your DBA.
4. Handling special characters
MySQL and PostgreSQL URIs, as well as the query parameters of JDBC URLs, should percent-encode URL-reserved characters in usernames, passwords, and database names.
| Character | Encoding |
|---|---|
@ | %40 |
# | %23 |
/ | %2F |
: | %3A |
% | %25 |
For example, the password a@b#1 should be written as a%40b%231. An unencoded # is treated as a URL fragment and breaks parsing.
SQL Server uses semicolon-separated properties with different escaping rules; property values containing semicolons should be wrapped in braces per Microsoft JDBC rules, for example password={a;b}.
5. Optional Lovrabet type parameters
| Parameter | Purpose | Passed to the database driver? |
|---|---|---|
dbType=TIDB | Explicitly identifies a jdbc:mysql:// URL as TiDB | No |
dbVersion=8.5 | Explicitly specifies the database version | No |
When no version is provided, MySQL and PostgreSQL currently default to 8.0 and 16 respectively during parsing; other databases can omit the version or specify it explicitly with dbVersion.
6. Network configuration before connecting
Currently only databases reachable from the Lovrabet server over the public internet are supported. You can use a cloud database's public address, a public IP with port mapping, a cpolar/frp TCP tunnel, or a public proxy provided by the database vendor.
localhost, 127.0.0.1, LAN IPs, and addresses reachable only inside a VPN are typically not accessible from the Lovrabet server.
If your database enforces an IP allowlist, allow all four of these Lovrabet egress IPs:
114.55.107.181
120.26.236.115
8.154.30.39
47.110.157.1217. Troubleshooting order
| Symptom | Check first |
|---|---|
| "Failed to parse" error | Is the JDBC prefix correct? Are the username, password, host, and database name complete? Are special characters encoded? |
| TiDB recognized as MySQL | Did you add dbType=TIDB to the jdbc:mysql:// query parameters? |
| Connection timeout | Is the public address reachable? Is the cpolar tunnel or proxy online? Are the port, security group, firewall, and allowlist correct? |
| Wrong username or password | Does the account allow remote login? Is the OceanBase tenant/cluster format correct? Was the password truncated at a special character? |
| Database does not exist | Did you enter a schema instead of the database name in PostgreSQL? Did you mix SID and Service Name in Oracle? Did you pick the right mode for OceanBase? |
| SSL/TLS error | Use the parameters and certificates from your cloud console; do not casually disable certificate validation in production |
| Version or driver error | Does the database type match the JDBC prefix? Does the TiDB URL carry the type hint? Is the actual database version compatible? |
Work through issues in this order: string format → address and port → allowlist/security group → account permissions → database name → SSL/TLS → type and version.
8. Security recommendations
- Start with a dedicated read-only account, and expand permissions only when writes are needed
- Never put real passwords into Feishu docs, tickets, code repositories, or screenshots
- Public databases must have an allowlist and a strong password; enable TLS where possible
- Temporary tunnels like cpolar are fine for integration testing, but are not recommended as a long-term way to expose a production database
- Before changing a production connection, verify it with the
debug=1"Test connection only" mode
9. Official format references
- PostgreSQL official: Connection URIs
- MySQL official: Connector/J Connection URL Syntax
- Microsoft official: Building the SQL Server JDBC connection URL
- MariaDB official: Connector/J connection strings
- PingCAP official: Connect to TiDB with JDBC
- Oracle official: JDBC data sources and URLs
- OceanBase official: Connector/J database URL