Skip to content

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

DatabaseFormats accepted in the workbenchTypical default portLovrabet type
MySQLmysql://, jdbc:mysql://3306MYSQL
PostgreSQLpostgres://, postgresql://, jdbc:postgresql://5432POSTGRESQL
SQL Serverjdbc:sqlserver://1433SQLSERVER
MariaDBjdbc:mariadb://3306MARIADB
TiDBjdbc:mysql:// with dbType=TIDB4000TIDB
Oraclejdbc:oracle:thin:1521ORACLE
OceanBasejdbc:oceanbase://2881 for direct OBServer connections; 2883 via ODPOCEANBASE

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:

plaintext
/workbench?debug=1
/workbench/create?debug=1

If 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:

plaintext
mysql://username:password@host:3306/database?useSSL=true

MySQL JDBC:

plaintext
jdbc:mysql://host:3306/database?user=username&password=password&useSSL=true

If 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:

plaintext
postgres://username:password@host:5432/database?sslmode=require
postgresql://username:password@host:5432/database?sslmode=require

PostgreSQL JDBC:

plaintext
jdbc:postgresql://host:5432/database?user=username&password=password&sslmode=require

A cpolar TCP tunnel address works directly as the host and port, for example:

plaintext
postgres://app:password@10.tcp.vip.cpolar.cn:14195/finance

This 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

plaintext
jdbc:sqlserver://host:1433;databaseName=database;user=username;password=password;encrypt=true

SQL 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

plaintext
jdbc:mariadb://host:3306/database?user=username&password=password&sslMode=verify-full

Use MariaDB's official jdbc:mariadb://. Do not use a custom mariadb://.

TiDB

plaintext
jdbc:mysql://host:4000/database?user=username&password=password&dbType=TIDB

TiDB 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:

plaintext
jdbc:mysql://host:4000/database?user=username&password=password&dbType=TIDB&sslMode=verify-full

Oracle

With a Service Name:

plaintext
jdbc:oracle:thin:username/password@//host:1521/service_name

With the legacy SID format:

plaintext
jdbc:oracle:thin:username/password@host:1521:SID

Prefer the Service Name provided by your DBA. Use the second format only in legacy environments that explicitly use an SID.

OceanBase

plaintext
jdbc:oceanbase://host:2883/database?user=username%40tenant%23cluster&password=password

Direct 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.

CharacterEncoding
@%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

ParameterPurposePassed to the database driver?
dbType=TIDBExplicitly identifies a jdbc:mysql:// URL as TiDBNo
dbVersion=8.5Explicitly specifies the database versionNo

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:

plaintext
114.55.107.181
120.26.236.115
8.154.30.39
47.110.157.121

7. Troubleshooting order

SymptomCheck first
"Failed to parse" errorIs the JDBC prefix correct? Are the username, password, host, and database name complete? Are special characters encoded?
TiDB recognized as MySQLDid you add dbType=TIDB to the jdbc:mysql:// query parameters?
Connection timeoutIs the public address reachable? Is the cpolar tunnel or proxy online? Are the port, security group, firewall, and allowlist correct?
Wrong username or passwordDoes the account allow remote login? Is the OceanBase tenant/cluster format correct? Was the password truncated at a special character?
Database does not existDid 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 errorUse the parameters and certificates from your cloud console; do not casually disable certificate validation in production
Version or driver errorDoes 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

基于飞书知识库同步生成,内容以飞书源文档为准