MySQL
Install, secure and operate MySQL services.
MySQL runs behind more small production systems than anything else, and most of the trouble arrives long after installation: a replica that has silently stopped applying, a dump that restores to the wrong point, a query that got slow when the data grew. This path installs a server, secures it, and then works through the operational half - users and grants, logical and physical backups, binary logs and point-in-time recovery, replication and its failure modes, and the slow query log. Every guide shows the command and the output you should see, so you can follow it on a real server.
Start with MySQL Point-in-Time Recovery · MySQL Replication Failure and Failover · MySQL Crash Recovery
45 published guides
30 of 45 guides need path access. Unlock MySQL path
45-guide MySQL learning path · 45 published · about 654 min of reading · 10 learning tracks · reviewed 10 October 2026
Foundations5 guides
Install it, secure it, and connect for the first time.
-
Installation 14 min
MySQL Installation on Ubuntu 26.04
One apt command installs MySQL 8.4 and starts it.
Updated 7 Oct 2026
-
Configuration 15 min
MySQL Secure Installation and Password Validation
The four things
mysql_secure_installationis famous for are already done on Ubuntu - the transcript shows no anonymous users, no test database and root bound to localhost.Updated 9 Oct 2026
-
Hands-on Lab 13 min
MySQL Command-Line Client
The same query, four ways: a box-drawn table, tab-separated for scripts, one field per line, and a file piped in.
Updated 7 Oct 2026
-
Troubleshooting 18 min
MySQL Local and Remote Connections
A connection from another host fails twice, with two different errors and two different causes: 2003 because the server is not listening, then 1130 because the account does not exist for that host.
Updated 8 Oct 2026
-
Troubleshooting 16 min
MySQL Service Management and Startup Failures
Stopping MySQL removes its socket directory, which is why
ERROR 2002names a file that is not there.Updated 9 Oct 2026
Schemas and Data5 guides
Databases, tables, engines, charsets and the SQL that moves data.
-
Hands-on Lab 14 min
MySQL Databases and Tables
Create a database, name its character set explicitly, then read the table back with
SHOW CREATE TABLE- which shows every default MySQL filled in that you did not type, and is the only honest answer to what a table actually is.Updated 7 Oct 2026
-
Troubleshooting 15 min
MySQL Data Types and Constraints
Three inserts that fail, each for a different reason and with a different error number.
Updated 7 Oct 2026
-
Hands-on Lab 12 min
MySQL UPDATE and DELETE
Change a row by reading its current value in the same statement, then remove one.
Updated 10 Oct 2026
-
Hands-on Lab 15 min
MySQL SELECT, Joins and Aggregation
One query answering a real question - how many orders each customer has and what they spent - and the two choices in it that decide whether customers with no orders appear at all.
Updated 8 Oct 2026
-
Troubleshooting 16 min
MySQL Foreign Keys and ALTER TABLE
A foreign key refuses in both directions - an order for a customer who does not exist, and deleting a customer who still has orders.
Updated 7 Oct 2026
Configuration5 guides
my.cnf, the buffer pool, and the settings that decide behaviour.
-
Configuration 13 min Paid
MySQL Configuration Files and Load Order
MySQL reads several files in a fixed order and the last one wins.
Updated 7 Oct 2026
-
Configuration 14 min Paid
MySQL Server Variables
Some variables change on a running server, some need a restart, and some cannot change at all.
SET GLOBALtells you which is which - and a restart shows what it did not save.Updated 9 Oct 2026
-
Troubleshooting 16 min Paid
MySQL Persisted Configuration
SET PERSISTwrites to a JSON file the server owns, and that value outranks your config file.Updated 8 Oct 2026
-
Configuration 14 min Paid
MySQL Buffer Pool and Connection Limits
The two settings worth touching before any others, what they cost, and how to set them so they survive - on a 4 GB host where getting the buffer pool wrong takes the machine down rather than making it slow.
Updated 9 Oct 2026
-
Concepts 15 min Paid
MySQL SQL Mode and Strict Behaviour
sql_modedecides whether bad data is an error or a silent correction.Updated 9 Oct 2026
Users and Privileges5 guides
Accounts, grants, authentication plugins and TLS.
-
Hands-on Lab 12 min Paid
MySQL User Accounts
A new account can connect and can see almost nothing.
Updated 7 Oct 2026
-
Hands-on Lab 13 min Paid
MySQL Privileges and GRANT
Grant
SELECTon one schema and the account can read it and nothing else.Updated 8 Oct 2026
-
Hands-on Lab 12 min Paid
MySQL Column-Level Privileges
Grant
SELECTon three named columns and the account can read those three.Updated 7 Oct 2026
-
Troubleshooting 16 min Paid
MySQL Roles and Default Roles
A role is granted, the account still cannot read the schema, and
SET ROLEin the same command does not help - because the database is selected before the role is activated.SET DEFAULT ROLEis the fix, and nothing in the error says so.Updated 9 Oct 2026
-
Hands-on Lab 13 min Paid
MySQL Account Locking, Revocation and Removal
Locking an account is reversible and keeps its grants; dropping it is neither.
ERROR 3118is what a locked account looks like from outside, and it is distinct from a wrong password.Updated 8 Oct 2026
Backup and Restore5 guides
mysqldump, the binary log, and recovery to a point in time.
-
Hands-on Lab 13 min Paid
MySQL Logical Backups with mysqldump
A dump is a text file of SQL statements that rebuilds the database.
--single-transactionis the flag that makes it consistent without locking anyone out, and it is the one most people leave off.Updated 8 Oct 2026
-
Hands-on Lab 14 min Paid
MySQL Dump Restore
The database is dropped for real, the client returns
ERROR 1049, and the dump brings back all five customers and three orders.Updated 9 Oct 2026
-
Hands-on Lab 11 min Paid
MySQL Partial and Schema-Only Dumps
Dump one table, or the structure with no rows at all.
--no-dataproduces a file with zero INSERT statements - useful for a schema diff, and catastrophic if you thought it was your backup.Updated 8 Oct 2026
-
Concepts 14 min Paid
MySQL Binary Log
Every change is written to the binary log before it reaches you.
Updated 7 Oct 2026
-
Troubleshooting 18 min Paid
MySQL Point-in-Time Recovery
A dump restores last night.
Updated 8 Oct 2026
Replication5 guides
A replica that keeps up, a failover that works, and GTIDs.
-
Configuration 15 min Paid
MySQL Replication Prerequisites
Three servers, three unique ids, GTID on everywhere and one account with exactly one privilege.
Updated 9 Oct 2026
-
Hands-on Lab 16 min Paid
MySQL Replica Seeding
A replica has to start from a known point, not an empty database.
Updated 9 Oct 2026
-
Hands-on Lab 15 min Paid
MySQL Replication Startup
Point the replica at the source, start it, and read the five fields of
SHOW REPLICA STATUSthat actually matter.Updated 9 Oct 2026
-
Troubleshooting 15 min Paid
MySQL Replica Write Protection
A fresh replica is not read-only.
Updated 8 Oct 2026
-
Troubleshooting 18 min Paid
MySQL Replication Failure and Failover
A local write on a replica collides with the source's next insert and replication stops with
Last_SQL_Errno: 1062.Updated 9 Oct 2026
Performance5 guides
The slow query log, EXPLAIN, and indexes that are actually used.
-
Hands-on Lab 16 min Paid
MySQL Query Plans with EXPLAIN
EXPLAINshows what the optimizer intends;EXPLAIN ANALYZEruns it and reports what happened.Updated 9 Oct 2026
-
Hands-on Lab 18 min Paid
MySQL Indexes, Selectivity and Skip Scan
A composite index takes the query from 57.4ms to 20.7ms - a 2.8x improvement, not the 100x the articles promise.
Updated 8 Oct 2026
-
Configuration 14 min Paid
MySQL Slow Query Log
Off by default, on in one statement, and the field that matters is not
Query_timebutRows_examined- 400,000 rows read to return 1 is the signature of a missing index.Updated 9 Oct 2026
-
Concepts 14 min Paid
MySQL Buffer Pool in Practice
A 99.948% hit rate sounds excellent and means almost nothing on its own - the dataset fits in the pool, so of course it does.
Updated 7 Oct 2026
-
Troubleshooting 19 min Paid
MySQL Locks, Blocking and Deadlocks
One transaction holds a row lock, another waits and dies with
ERROR 1205.Updated 8 Oct 2026
Troubleshooting5 guides
It will not start, it will not connect, it will not keep up.
-
Troubleshooting 14 min
MySQL Connection Limit Failures
ERROR 1040is almost never a sign that you need more connections.Updated 9 Oct 2026
-
Troubleshooting 13 min
MySQL Runaway Queries and KILL
KILL QUERYstops the statement and leaves the connection alive;KILLdrops the whole connection and rolls back its transaction.Updated 9 Oct 2026
-
Troubleshooting 15 min
MySQL Metadata Locks and Blocked DDL
An
ALTER TABLEhangs behind a transaction that only ever ran aSELECT.Updated 8 Oct 2026
-
Troubleshooting 16 min
MySQL Crash Recovery
kill -9on the server, and 400,000 rows are still there afterwards.Updated 7 Oct 2026
-
Concepts 14 min
MySQL Diagnostic Toolkit
Where to look, in what order, when something is wrong: the error log for the server, the process list for now, status variables for since-startup, and
performance_schemafor the detail underneath.Updated 7 Oct 2026
Monitoring and Operations5 guides
performance_schema, status counters and what to watch.
-
Concepts 13 min Paid
MySQL Health Checks
Seven counters that describe a server's health, and the two that quietly predict trouble: temporary tables spilling to disk, and joins running with no index at all.
Updated 8 Oct 2026
-
Hands-on Lab 12 min Paid
MySQL Table Sizes and Growth
information_schemareports table sizes, andTABLE_ROWSis an estimate that was wrong every time it was read here.Updated 9 Oct 2026
-
Hands-on Lab 15 min Paid
MySQL Fragmentation and OPTIMIZE TABLE
A third of the rows deleted and the table is exactly as large as before - 20.5 MB either way.
Updated 7 Oct 2026
-
Hands-on Lab 12 min Paid
MySQL Integrity and Upgrade Checks
CHECK TABLEverifies structure and indexes;mysqlcheck --check-upgradefinds what an upgrade would object to.Updated 8 Oct 2026
-
Concepts 14 min Paid
MySQL Replication Topology Monitoring
SHOW REPLICA STATUSsays replication is running.Updated 8 Oct 2026