Skip to main content
Hyperterse supports MySQL with connection pooling, character set configuration, and parameterized query execution. All standard SQL features — joins, aggregations, subqueries, JSON functions, and window functions — work as expected in tool statements.
Hyperterse connects to your existing database. It does not create or manage databases — you provide a running MySQL instance and a connection string.

Adapter configuration

Create an adapter file in app/adapters/:
app/adapters/mysql-db.terse
The connection string uses the MySQL DSN format:
MySQL DSN format differs from PostgreSQL URI format. The host and port are wrapped in tcp(...).

Connection options

string
Character set for the connection. Use utf8mb4 for full Unicode support including emoji.
string
Maximum number of connections in the pool.

Connection string parameters

Fine-tune behavior through query parameters on the connection string:
Create a dedicated database user for Hyperterse and grant only the privileges your tools require:

Verify the connection

Start the server and confirm the adapter connects:
A successful connection produces:
If the connection fails, the server exits immediately with a diagnostic message.

Usage

MySQL tools execute standard SQL through the adapter. Use {{ inputs.field }} placeholders for parameterized values.
app/tools/get-product/config.terse
MySQL-specific features like JSON_EXTRACT, stored procedures, and window functions are all supported. Use standard MySQL syntax in statements.

Read replicas

Configure separate adapters for primary and replica databases:
app/adapters/primary.terse
app/adapters/replica.terse
Send read-only tools to the replica adapter.

Troubleshooting

Access denied

Verify user grants:
Ensure the user exists with the correct host permissions, then FLUSH PRIVILEGES.

Character set issues

Use utf8mb4 in the connection string to support the full Unicode range:
Verify the database character set:

Connection timeout

Increase timeout values in the connection string:

Timezone issues

Set the timezone explicitly for consistent datetime handling: