Install a shared database so multiple machines can work from one Chordalia index.
MariaDB is a free, open-source database server. When a Chordalia product uses it, your index (documents, journals, metadata) lives in MariaDB instead of a local SQLite file — which means several machines can share the same index.
You need MariaDB if you want to:
If you only use Chordalia products on one computer, you don't need MariaDB — the default SQLite backend is faster and simpler for single-machine use.
Nothing. MariaDB is free, open-source, and runs on hardware you already own. You pay only for electricity.
The MariaDB server runs on one computer on your local network. Other machines connect to it over your home or office network. Things to consider when picking the host:
For a household, the natural choice is usually a desktop PC that's always on anyway. For an office, a dedicated machine or NAS that supports MariaDB directly.
Download the installer from the official MariaDB site:
https://mariadb.org/download/ →
Choose the stable release for your operating system. For Windows, pick the MSI installer — it's the easiest path.
Accept the defaults for most screens. The ones that matter:
3306;
keep it unless you have a specific reason to change.MySQL in Services. You can override the name on
this installer screen if you'd rather call it
MariaDB.
Don't let Chordalia products connect as root —
that account has too much power. Instead, create a dedicated
database and a dedicated user with access only to that database.
On the host machine, open a terminal (Command Prompt on Windows) and connect to MariaDB as root:
Enter the root password when prompted. You'll drop into a
MariaDB [(none)]> prompt.
Copy and paste these lines one at a time, replacing
YOUR_PASSWORD with a strong password of your
choosing (different from the root password):
'chordalia'@'%' and not 'chordalia'@'localhost'?
The % wildcard lets the user connect from any IP
address on your network, which is what you want for multi-machine
access. If you're only ever going to connect from the host
machine itself, use 'chordalia'@'localhost' instead
for tighter security.
Two things can block remote connections even after you've granted a user the right to connect:
By default, MariaDB on some platforms only listens on the loopback
interface (127.0.0.1), which means other machines
can't reach it. To check and fix:
C:\Program Files\MariaDB 11.x\data\my.ini. On
Linux, /etc/mysql/my.cnf or
/etc/mysql/mariadb.conf.d/50-server.cnf.bind-address = 127.0.0.1. If it's
there, change it to bind-address = 0.0.0.0 (listen
on all network interfaces). If it's commented out or absent,
do nothing — the default already allows all interfaces.services.msc), find
the service named MySQL (the MariaDB installer
registers its service under the MySQL name by default for
backward compatibility — it may be named MariaDB
if you picked a custom name during install). Right-click
→ Restart.Windows blocks inbound connections to port 3306 by default. To open it:
wf.msc (opens Windows Defender
Firewall with Advanced Security).3306
→ Next.On a second machine (not the host), open a terminal and install the MariaDB client (on Windows, just grab the MSI from the same download page and choose Client programs only), then:
Replace <host-ip> with the IP address of the
host machine (e.g. 192.168.1.50). Find it on
the host by opening Command Prompt and running ipconfig
— look for IPv4 Address under your active network
adapter.
Enter the password you chose in Step 3. If you land at a
MariaDB [chordalia]> prompt, you're done. Type
EXIT; to close.
studio.local or just
studio). That's nicer than an IP because it doesn't
change if your router reassigns addresses. Check your router's
admin page or try ping studio to see if it
resolves.
Open Settings → Database. Pick MariaDB as the backend, then paste:
192.168.1.50 or studio)3306chordaliachordaliaClick Test connection. On success, click Save. Repeat on each other machine that should share this index.
In chordium.yml (or the admin UI) set:
database.hostdatabase.port — 3306database.name — chordalia (or your own)database.userdatabase.passwordOpen Settings → Database and pick MySQL/MariaDB. Fill in the same host, port, database, user, and password as above.
Chordalia products can safely share the same MariaDB server
— each uses separate tables — but it's tidier to
give each product its own database. Repeat Step 3 with a
different database name (e.g. cadenzium,
chordium) if you want that separation.
The client couldn't reach the host at all. Walk through these in order:
services.msc) should show either MySQL
or MariaDB as Running. (The MariaDB
installer registers the service under the MySQL name by
default.)ping <host-ip>. If that
doesn't respond, the machines aren't on the same network.netstat -an | find "3306" — if you
see only 127.0.0.1:3306 LISTENING, the bind
address is still loopback. Fix it per Step 4.
The user exists but isn't allowed to connect from that IP
address. Most likely you created the user with
'chordalia'@'localhost' instead of
'chordalia'@'%'. To fix, run (as root on the
host):
The database was created with a character set other than
utf8mb4. Drop and recreate it:
(You'll need to re-run the product's initial indexing after this.)
From the MariaDB shell:
Stop the MariaDB service, start it with
--skip-grant-tables, connect, reset the root
password, restart normally. MariaDB's docs have the detailed
procedure:
mariadb.com/kb/en/resetting-the-root-password-on-windows →
Run this from the host (creates a dump file):
Store the dump somewhere off the host machine. To restore,
create an empty database and run
mysql -u root -p chordalia < chordalia-backup.sql.