PRO — $24.90/MO / 14-DAY PRO TRIAL ON SIGNUP
Print labels straight from MySQL or MariaDB
Connect the LabelInn Windows app to MySQL or MariaDB, write a read-only SELECT ... LIMIT query, and each result row prints as one label. Tested on MariaDB 11.4.4 through the same connector the app uses. One thing to know first: write placeholders as @name, because :name reaches MySQL unchanged and fails.

Video / 1:27
Watch: Print labels from a database
1:27 walkthrough in the real app. Step-by-step page →
HOW IT WORKS
Three screens from data to printed label.
No copy-paste, no hunting for templates. The same flow repeats for every record.

Choose the engine, test the connection and browse the schema.

A named, parameterised query returns the rows a label needs.

Preview, pick the printer and print the result.
01
Who this is for
Teams running a self-hosted shop, WMS or internal tool on MySQL/MariaDB who currently export a file before every label run.
02
Step by step
- Install the LabelInn Windows app on a PC that can reach the server. The database driver is built in; there is nothing else to install.
- Add the MySQL / MariaDB connection: host, port 3306, database and a database user that can read the tables you need.
- Write the MySQL query that returns exactly the rows you want to label, one row per label.
- Map each result column onto a label field — text, barcode, QR or RFID — then preview a few rows.
- Print the result set, or save the query so the next run is one click.

Write ordinary MySQL. Append LIMIT n while you are testing so a preview never pulls the whole table.
Try it with your own data — signing up starts a 14-day Pro trial, no credit card. After that database sources need Pro at $24.90/mo. Download now → | See pricing →
03
What you can do
- Result columns bind to any label field, so barcode and QR content comes straight out of MySQL / MariaDB.
- Re-run the saved query whenever you need the current rows — no export, no copy-paste, no stale file.
- Mix database columns with static text, counters, dates and serial numbers on one label.
- Printed rows are recorded in the print history, so a reprint or an audit can find the exact job later.
- Queries can be parameterised, so an operator supplies a work order or batch number instead of editing SQL.
04
Technical details
| Item | Detail |
|---|---|
| Engine | MySQL / MariaDB |
| Default port | 3306 |
| Query language | MySQL |
| Driver | Built into the bridge: MySqlConnector 2.3.7. Nothing else to install. |
| Platform | Windows desktop app only. The connector is a Windows program that runs next to the app; on macOS and Linux use Excel or CSV. |
| Credentials | A connection created in the desktop app keeps its password in the PC's secure storage (Windows DPAPI); host, port, database and user name are saved with the connection. A connection created from the dashboard or the API stores the password encrypted (AES-256-GCM) in your company's cloud record and the PC fetches it when it runs a query. |
| Access | Read-only: only SELECT and WITH statements run. The connection test reports the server version and whether the account looks read-only. |
| Defaults | Row limit 1000 and timeout 30 seconds per saved query (both editable, timeout up to 300). |
| Plan | Pro ($24.90/month, $249/year). Without it you can still connect, run the query and see the first 10 rows; binding an element or printing the set needs Pro. The 14-day trial from sign-up includes it. |
05
Requirements for a direct database connection
- The LabelInn Windows desktop app, on a PC that can reach the database server. The connector does not run on macOS.
- Nothing to install for the database driver: it is built in.
- A database user with
SELECTon the tables you label and nothing else. LabelInn never needs write access for printing. - A Pro plan or the 14-day trial to bind and print; connecting and previewing 10 rows is open to every plan.
TESTED GOTCHA
Placeholders: :name fails on MySQL and MariaDB, @name works
The query editor says "Use :name syntax for parameters". On the other four engines that is right. On MySQL and MariaDB the connector sends the text as written and the server rejects the colon.
| Query sent | Result on MariaDB 11.4.4 |
|---|---|
... WHERE batch = :batch | Error 1064, syntax error near :batch |
... WHERE batch = @batch | Works: 3 rows for L2610-A |
... WHERE batch = 'L2610-A' | Works: 3 rows |
On 17 October 2026 both forms were posted to the LabelInn database connector (labelinn_db_bridge.exe, MySqlConnector 2.3.7) with the same parameter value. The editor's "Detected parameters" box only recognises the :name form, so on MySQL treat parameters as a known gap: write the value into the WHERE clause or a saved query per batch until the connector rewrites placeholders the way it already does for SQL Server and PostgreSQL.
CONNECTING
MySQL and MariaDB specifics


| Setting | What to enter |
|---|---|
| Host and port | Server name and 3306 (the form default for MySQL / MariaDB). |
| Database | The schema to connect to. Required. |
| TLS | "Require" is the default; "Prefer" negotiates; "Disable" is for networks you control. |
| User | A user with SELECT on the schema. The connection test reads SHOW GRANTS and flags the account if it has write or DDL privileges. |
| Character set | Use utf8mb4 columns. The sample script creates the table with DEFAULT CHARSET=utf8mb4; accented text such as "Crème brûlée" came back intact. |
THE QUERY
A label query in MySQL / MariaDB
SELECT sku, product,
CAST(price AS CHAR) AS price, -- 4.90 stays 4.90
barcode, batch,
DATE_FORMAT(expiry, '%d.%m.%Y') AS expiry -- 31.03.2027
FROM labelinn_demo_products
WHERE batch = 'L2610-A'
ORDER BY sku
LIMIT 50LIMIT ncloses the statement (andLIMIT n OFFSET mpages).TOPis a syntax error on MySQL (error 1064 in the test).FETCH FIRST n ROWS ONLYalso worked on MariaDB 11.4. Oracle's MySQL server does not document that clause, so preferLIMIT.- Backtick-quoted identifiers worked: `
skuandlabelinn_demo_products`. - A
DECIMAL(8,2)price is delivered as the number 4.9 and aDATEas2027-03-31T00:00:00. TheCAST/DATE_FORMATabove return4.90and31.03.2027.
This exact query was run through the real connector on MariaDB 11.4.4 on 17 October 2026 and returned 3 rows with 4.90 and 31.03.2027. Not run on Oracle MySQL 8.
WHEN IT FAILS
MySQL error numbers LabelInn recognises
| MySQL error | LabelInn reports | Usual cause |
|---|---|---|
| 1045 | auth_failed | Access denied: wrong password, or the user is not allowed from this PC's address (user@host grants). |
| 1146 | table_not_found | Table does not exist in the connected schema. |
| 1054 | column_not_found | Unknown column in field list. |
| 1064 | mysql_error | Syntax error: TOP instead of LIMIT, or a :name placeholder. |
ANY PRINTER
Design it, bind your data, print on the printer you already own.
Zebra, TSC, Toshiba, Epson and more — over USB, network or Bluetooth, with no driver to install.

PRICING
Start free. Pay when it earns its keep.
QUESTIONS / FAQ
Frequently asked questions
Which MySQL do I write?
Ordinary MySQL. LabelInn does not rewrite your SQL; it runs the statement you saved and maps the result columns onto label fields. Use `… LIMIT n` while testing.
Can I print to a Zebra or TSC printer from MySQL / MariaDB without a driver?
For models LabelInn drives natively over ZPL, TSPL or TPCL, yes — the command stream is generated and sent directly. That is independent of the database driver, which is only used to read your rows.
Does label data leave my network when I print from MySQL / MariaDB?
The query runs on the PC where LabelInn is installed, against your own MySQL / MariaDB server, and the rows fill the label there. What is stored in the cloud is the label design and the print record, plus the connection's host, port, database and user name. The password depends on how the connection was made: A connection created in the desktop app keeps its password in the PC's secure storage (Windows DPAPI); host, port, database and user name are saved with the connection. A connection created from the dashboard or the API stores the password encrypted (AES-256-GCM) in your company's cloud record and the PC fetches it when it runs a query.
Does LabelInn work with MariaDB as well as MySQL?
Yes, the same connector serves both. The pages here were tested on MariaDB 11.4.4; it has not been run against Oracle MySQL 8.
Why does my :name parameter fail on MySQL?
On MySQL and MariaDB the placeholder is passed to the server unchanged and the server answers error 1064. Write the value into the query for now, or use the @name form. SQL Server and PostgreSQL rewrite :name to @name automatically, Oracle and SAP HANA use :name natively.
Do I need an ODBC or Connector/NET driver for MySQL?
No. The connector program contains MySqlConnector, so nothing else is installed.
KEEP GOING
Related pages
NEXT STEP / LABELINN
Print your MySQL / MariaDB data on the printer you already own
Database sources run on Pro — $24.90/mo, or $249/year (pay for 10 months, use 12). Signing up starts a 14-day Pro trial, so you can bind your own MySQL / MariaDB data and print a real label before you pay anything. · 14-day Pro trial on signup · No credit card required · Database connections run on the Windows desktop app