This is an original planning guide. It is not a vendor manual, an official standard, or legal advice. Example addresses use documentation ranges. Review every command before you paste it.
The first hour on MariaDB
MariaDB is the engine in this window. The client is mariadb or the mysql-compatible client this package provides. The usual port is 3306. The server version string should say MariaDB. This page is the planning habit for an admin who already chose it. It is not a vendor manual, and it is not a script you paste unread. The install generator drafts a starter. You read it. The tools do not log into a host.
The lab listens where this engine can be kept to yourself. Bind the lab to 127.0.0.1. Read the version before you copy any example file. A generated file that publishes the service to every address is a file you edit before it runs. prompt-for-this is not a password. The real secret stays in the store, and it does not go in the ticket or in a compose file you commit.
One change after the lab answers a trivial read. A version upgrade, a new account, and a backup job are three windows. The backup guide owns the restore test. The configuration guide owns a later setting. This page stops when the lab name, the version, and a read you understand are written down.
MariaDB is not MySQL. Shared history does not make a MySQL 8 authentication snippet safe to paste. You do not point the client at an instance you do not administer, and you do not load a customer extract to prove the install.
A lab you can name, a read you can explain
Install on a lab host or run the drafted compose only after you have read it. Bind it as this page requires. Set an admin secret through a prompt or the store. Connect with the mariadb client. Read the version. Create a lab database or the equivalent MariaDB calls a database, with a name that is obviously a lab.
Create one account that is not the superuser, if this engine has that idea. Prove it can do one small read or write of invented rows, and that it cannot administer the instance. The security guide is the longer grant story. Here you only prove the split exists.
Read a version string that names MariaDB. Create a lab database and an account that is not the root account. Select two invented rows. If a MySQL guide disagrees with the version you read, follow the version.
Copy the config the install left behind before you change it. If you change anything, change one line and read the value back from the engine. Then stop. The Kubernetes draft, if you have one, is a later ticket. A cluster you have not backed up is not the first place a manifest runs.
# MariaDB lab. Review before you paste.
# Bind the lab to 127.0.0.1. Read the version before you copy any example file.
# Client: the mariadb client.
# prompt-for-this is not a password to keep or commit.
# Invent the rows. Do not load a customer extract.
# Copy the config before you edit it.
# A second session stays open across a restart.
A change you can finish
Production is a later canary of the same version and the same bind decision. This window is the lab proof.
Rollback is the lab you can throw away, or the previous config file you copied. You do not roll back by deleting a data directory you have not backed up.
- Read the drafted install. Delete any bind to every address.
- Start the lab and read the version with the mariadb client.
- Create an obviously named lab database.
- Store the secret outside the ticket.
- Prove a narrow account, or write that this engine's equivalent is still open.
- Copy the config. Change at most one line.
- Hand backup, grants, and the next node to their guides.
Mistakes that outlive the command
MariaDB fails in the same few ways. Each one looks finished on the day you type it. The list is here so the ticket can forbid them before the window, not so you can recognise them in an incident review.
- Pasting an install draft you did not read.
- A password in the compose file or the ticket.
- Listening on every address.
- The application using the superuser.
- A customer extract as the first data.
- Deleting a data directory as a reset.
- Treating MariaDB as a different engine you already know.
- A second product installed in the same hour.
- No version written down.
- A restart from the only session.
- Installing MySQL and MariaDB on one lab host in the same hour.
- Calling the lab a backed-up production instance.
Decisions to write down before the window
One decision for MariaDB: The host is a lab you administer. The version was read from the engine, not from the draft. The bind matches this page. The secret is not in the ticket. The lab name is obvious. Invented rows were enough for the proof. A narrow account was proven, or the gap is written. The config was copied before any edit. At most one setting changed. Backup is the next guide, not a feeling. The version string includes MariaDB and is in the ticket. And a second person can say what MariaDB is for on this host.
The hour you stop
Write the database name, the host, and the clock time before you change anything for MariaDB. If this database is serving people and you do not have a copy, this hour is a plan. A plan you can read tomorrow is a success. A change you cannot undo is not.
Use a lab or a restored copy. The rows you read are rows you are allowed to hold. You do not point a client at a database, a cluster, or an account you do not administer. The tools on this site run in the browser. They do not log in, and they do not scan.
prompt-for-this is a reminder that a secret is missing. It is not a password, a token, or a key you save. The real secret stays in the password store. If a connection string, a log, or a ticket still contains a live secret, stop and rotate it. Then delete the copy.
One change. A config line, an index, a grant, and a restore do not share a window. If two things move and the outcome is wrong, you will not know which one did it. The rollback is the previous file or the backup you already tested.
A second person reads the scope aloud: which host, which database, which account. If they cannot find it in the ticket, the ticket is not ready. Silence is not agreement.
The lab listens on localhost. 127.0.0.1 is the address you bind until a firewall story exists. example.com is not your host. A generated file that listens on every address is a file you edit before it runs.
Do not run a statement you cannot undo. A delete or a drop without a backup and a where-clause you have read is the mistake this page is here to prevent. Read the statement. Count the rows it will touch. Then decide.
Keep the previous config and the previous dump. A generator draft is not the previous file. The previous file is what you put back if the new one is wrong. You practised the reload with a second session open when the change can lock you out.
If a step fails twice, stop. The failure is the result. Adding a command from a forum beside a half-applied config produces a database nobody can explain. Rebuild the lab from the copy you kept.
When the checks pass, the next database waits until someone else can repeat the proof from the notes. MariaDB is done for this window when the proof is written, not when the client printed a prompt.
This page is a planning guide. It is not a vendor manual, not an official standard, and not legal advice. If an auditor must see the decision, they see the ticket and the evidence, not this paragraph.
Hand the finished note to the neighbouring guide that owns the next step, and leave this database alone until that guide has its own window.
MariaDB checks before a second instance
Confirm this before you call the change done: The version command output is in the ticket. The lab name is obvious. A trivial read of invented rows worked. No password is in the ticket or the compose file. The service is not bound to every address. The previous config exists if you edited one. You did not load customer data. A second session exists if you restarted. The hostname in the prompt matches the hostname in the ticket for MariaDB. The result line includes the time and the person, not only the command. You can point at the rollback value without searching a chat history. And done is a sentence a second person can repeat: the proof for MariaDB happened, and the next host is not started early. If one of those fails, stop.
Tools for this guide
These tools run in the browser on this site. They do not log into your machines.
- MariaDB Install & Initial Configuration Script Generator
- MariaDB Docker Compose Setup Script Generator
- MariaDB Kubernetes Deployment Script Generator
Related pillar guides
Guides in this cluster
These supporting pages belong to this pillar.
- Cheat Sheet: MariaDB DBA Cheat Sheet
- Troubleshooting: MariaDB Troubleshooting Guide
- Reference: MariaDB DBA Scripts Collection
- How-To: How to Install and Configure MariaDB
- How-To: How to Run MariaDB with Docker Compose
- How-To: How to Deploy MariaDB on Kubernetes
- How-To: How to Create a Database in MariaDB
- How-To: How to Create a User and Grant Privileges in MariaDB
- How-To: How to Create a Read-Only User in MariaDB
- How-To: How to Change a User Password in MariaDB
- How-To: How to Reset the Admin Password in MariaDB
- How-To: How to Drop or Rename a Database in MariaDB
- How-To: How to Rename a Table or Column in MariaDB
- How-To: How to Back Up MariaDB
- How-To: How to Restore a MariaDB Backup
- How-To: How to Schedule Automatic MariaDB Backups
- How-To: Point-in-Time Recovery in MariaDB
- How-To: How to Set Up MariaDB Replication
- How-To: MariaDB High Availability and Failover Setup
- How-To: MariaDB Configuration Tuning Guide
- How-To: How to Limit MariaDB Memory Usage
- How-To: How to Move the MariaDB Data Directory
- How-To: How to Enable the Slow Query Log in MariaDB
- How-To: How to Enable Query Statistics in MariaDB
- How-To: How to Enable TLS/SSL Connections in MariaDB
- How-To: How to Encrypt MariaDB Data at Rest
- How-To: How to Set Up Auditing in MariaDB
- How-To: Partitioning and Sharding in MariaDB
- How-To: How to Create Indexes in MariaDB
- How-To: How to Import a CSV into MariaDB
- How-To: How to Export MariaDB Data to CSV
- How-To: How to Change Character Set and Collation in MariaDB
- How-To: How to Upgrade MariaDB to a New Version
- How-To: How to Allow Remote Connections to MariaDB
- How-To: Connection Pooling for MariaDB
- How-To: Monitoring MariaDB with Prometheus
- How-To: How to Schedule Jobs in MariaDB
- How-To: Change Data Capture in MariaDB
- How-To: How to Reclaim Disk Space in MariaDB
- How-To: How to Set Up a OPTIMIZE & ANALYZE Job in MariaDB
- How-To: How to Rotate MariaDB Logs
- How-To: How to Completely Uninstall MariaDB
- How-To: How to Check the MariaDB Version
- How-To: How to Find Blocking Queries in MariaDB
- How-To: How to Find Long-Running Queries in MariaDB
- How-To: How to Kill a Query or Session in MariaDB
- How-To: How to Check Table Sizes in MariaDB
- How-To: How to Check Database Size in MariaDB
- How-To: How to Get Row Counts for All Tables in MariaDB
- How-To: How to Check Index Usage in MariaDB
- How-To: How to Find Unused Indexes in MariaDB
- How-To: How to Find Missing Indexes in MariaDB
- How-To: How to Find Duplicate Indexes in MariaDB
- How-To: MariaDB: Index Fragmentation & Bloat Report Guide
- How-To: How to See Active Connections in MariaDB
- How-To: How to Check Replication Lag in MariaDB
- How-To: How to Analyze Deadlocks in MariaDB
- How-To: How to Find the Most Expensive Queries in MariaDB
- How-To: How to Check the Cache Hit Ratio in MariaDB
- How-To: How to List Users and Privileges in MariaDB
- How-To: How to Monitor Transaction Log Usage in MariaDB
- How-To: How to Find Table Dependencies in MariaDB