No MySQL book from a major English-language publisher names or targets MySQL 8.4 LTS yet, and 8.0, the version most of them teach, reached end of life in April 2026. We took five statements that 8.0-era material treats as routine and ran them against the current LTS lines: all five failed on MySQL 8.4.13 (tested November 2026 on Ubuntu 26.04 with the official Docker images). That does not make the best MySQL books worthless, because indexing, InnoDB, query plans and replication design carry over. You just need to know which lines to translate.
This list covers nine MySQL and MariaDB books, from a first SQL course to production tuning and cloud administration. For each one you get the server version it was written against, what its companion code still uses, and the reader who should pass on it. Editions, prices and stock come from the Amazon catalog, and the MariaDB pick is the only MariaDB 11 title our catalog search turned up.
Pick a MySQL Book by the Job You Do
Start from the work in front of you, not from page count. A developer who writes queries all day gets more from a book on response time than from a 971-page cookbook, and a new DBA needs administration chapters before tuning theory. These are the picks we would hand to each reader:
- First book, developer track: MySQL Crash Course by Rick Silva, with three projects that end in working schemas.
- First book, DBA track: Learning MySQL, 2nd Edition, written by two Percona engineers.
- Slow queries: Efficient MySQL Performance, which measures everything against query response time.
- Running production: High Performance MySQL, 4th Edition.
- Desk reference: MySQL Cookbook, 4th Edition, with more than 200 recipes.
- MariaDB shops: MariaDB 11 Essentials by Neil Smyth.
The other three cover narrower ground. Hands-On MySQL Administration is the one to buy if your servers run on RDS, Aurora or Azure. Mastering MySQL Administration goes deepest on InnoDB Cluster and NDB, and Murach’s MySQL teaches SQL against 8.0.33, the newest 8.0 point release named by any of the 8.0 books. If you have never written a SELECT, work through our SQL learning path first and come back with the basics in place.
What 8.0-Era Statements Do on MySQL 8.4 and 9.7
The measured result first. Each row is a statement or tool from the 8.0 era that older books and blog posts print without comment, and one of them already fails on 8.0.46. We ran them against five servers with default settings, skipped the two MySQL-only rows on MariaDB, and recorded the exact response:
| Statement or tool | MySQL 8.0.46 | MySQL 8.4.13 LTS | MySQL 9.7.4 LTS | MariaDB 11.8.9 and 12.3.3 |
|---|---|---|---|---|
SHOW MASTER STATUS | Works | ERROR 1064 (syntax) | ERROR 1064 (syntax) | Works |
SHOW SLAVE STATUS | Works | ERROR 1064 (syntax) | ERROR 1064 (syntax) | Works |
User with mysql_native_password | Works | ERROR 1524, plugin not loaded | ERROR 1524, plugin removed in 9.0 | Works |
SET GLOBAL expire_logs_days = 7 | ERROR 3683, clashes with binlog_expire_logs_seconds | ERROR 1193, unknown variable | ERROR 1193, unknown variable | Works (sets 604800 seconds) |
DOUBLE AUTO_INCREMENT column | Works | ERROR 1063 | ERROR 1063 | Not tested |
mysqlpump, mysql_upgrade binaries | Present | Not in the image | Not in the image | Not tested |
How the numbers were taken:
- Servers: the official
mysql:8.0,mysql:8.4,mysql:9.7,mariadb:11.8andmariadb:12.3images on one Ubuntu 26.04 VM, no custom configuration. - Client: each statement sent with the client that ships in each image, using
-e, output saved verbatim, one run per server. - Book code: four companion repositories cloned and searched for the removed syntax, including
CHANGE MASTER,START SLAVE,RESET MASTERandmysql_native_password.
The repositories came out cleaner than we expected. Efficient MySQL Performance, Learning MySQL and MySQL Crash Course returned zero hits across 127 files. The MySQL Cookbook repo, the largest at 564 files, had 10 lines using mysql_native_password in two routines, so that is the one book whose code you will edit on 8.4. The prose is a different matter, because replication chapters written for 8.0 print the old SHOW MASTER STATUS form that 8.4 rejects:
SHOW MASTER STATUS;
MySQL 8.4.13 treats the old keyword as a syntax error, which reads like a typo rather than a removed feature:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MASTER STATUS' at line 1
The replacement statement returns the same columns as before:
SHOW BINARY LOG STATUS;
On the 8.4.13 test server it reported the current binary log file and position:
File Position Binlog_Do_DB Binlog_Ignore_DB Executed_Gtid_Set
binlog.000002 334
Tuning chapters age in a quieter way. MySQL 8.4 changed a set of InnoDB defaults, so a book that tells you to raise innodb_io_capacity from 200 is describing a server that no longer ships. These are the values each container reported:
| Variable | MySQL 8.0.46 | MySQL 8.4.13 | MySQL 9.7.4 | MariaDB 11.8.9 and 12.3.3 |
|---|---|---|---|---|
innodb_io_capacity | 200 | 10000 | 10000 | 200 |
innodb_adaptive_hash_index | ON | OFF | OFF | OFF |
innodb_change_buffering | all | none | all | Unknown variable |
innodb_log_buffer_size | 16 MiB | 64 MiB | 64 MiB | 16 MiB |
innodb_flush_method | fsync | O_DIRECT | O_DIRECT | O_DIRECT |
The 9.7.4 container reported innodb_change_buffering=all while 8.4.13 reported none, so two LTS lines one release apart disagree on a default that tuning books discuss. Read SELECT @@variable on your own server before applying any number from a book, and treat the value in print as the reasoning rather than the setting.
All Nine Books Compared
The shortlist came from the publishers’ own shelves: a catalog pass over O’Reilly, Apress, Packt, No Starch, Murach, Manning, Wiley and Pearson, plus a separate MariaDB search. No English title in that pass names MySQL 8.4 or 9.x on the cover. Every pick is a print edition that was in stock when we checked, and the dates and page counts below come from Amazon:
| Book | Publisher, date | Pages | Written against | Level | Price when checked |
|---|---|---|---|---|---|
| High Performance MySQL, 4th Ed | O’Reilly, Dec 2021 | 386 | MySQL 8.0 | Advanced | About $40 to $45 |
| Efficient MySQL Performance | O’Reilly, Jan 2022 | 335 | MySQL 8.0 | Intermediate developer | About $40 |
| MySQL Cookbook, 4th Ed | O’Reilly, Sep 2022 | 971 | MySQL 5.7 and 8.0 | All levels, reference | About $55 to $60 |
| Hands-On MySQL Administration | O’Reilly, Aug 2024 | 606 | MySQL 8, RDS, Aurora, Azure | Intermediate DBA | About $45 to $50 |
| Learning MySQL, 2nd Ed | O’Reilly, Oct 2021 | 629 | MySQL 8.0 | Beginner to junior DBA | About $35 to $40 |
| Murach’s MySQL, 4th Ed | Murach, Oct 2023 | 652 | MySQL 8.0.33 | Beginner developer | About $35 to $40 |
| MySQL Crash Course | No Starch, May 2023 | 352 | Not stated (8.0 era) | Beginner developer | About $35 |
| Mastering MySQL Administration | Apress, May 2024 | 757 | MySQL 8.2 | Advanced DBA | About $35 to $40 |
| MariaDB 11 Essentials | Payload Media, Apr 2025 | 270 | MariaDB 11 | Beginner | About $35 |
The “written against” column decides how much translation you will do, and every MySQL row sits before 8.4. That is why the picks are ordered by how well their core material survives the jump, with the performance books first: query analysis changed least in our tests, while replication syntax and authentication broke outright.
1. High Performance MySQL, 4th Edition
Silvia Botros and Jeremy Tinley wrote the fourth edition for people who already run MySQL and need it to stay up under load. It starts from service-level objectives, then moves through schema, index and query design, server and operating-system tuning, and replication, load balancing, high availability and failover. Later chapters compare the managed cloud offerings and show how to turn routine DBA tasks into automated processes.
At 386 pages it is less than half the length of the 823-page third edition from 2012, so it reads as a guide to operating MySQL as a service rather than a reference to every setting. Its reasoning about indexes, InnoDB and replication topology holds on 8.4 and 9.7. It was published in December 2021, while 8.0 was current, so check any replication or authentication command against the translation table further down before you run it.
Not the first book for a beginner, since it assumes you can already install, query and back up a server. It was about $41 when we checked. Check the current price on Amazon.
2. Efficient MySQL Performance
Daniel Nichter aimed this book at software engineers rather than DBAs, and it shows in the first chapter: query response time is the one number everything else serves. From there it covers query metrics and reporting, indexing for common clauses and joins, the server metrics worth watching, and how transactions and row locks hold up throughput. It is 335 pages and reads faster than High Performance MySQL because it stays on the query side.
Its example repository covers chapters 1, 2, 3, 6 and 8, and none of its files touched the syntax 8.4 removed. That makes it the pick whose examples carry over cleanly, because EXPLAIN output and index design are what it teaches. The weak spot is server tuning: the book was written against 8.0, and the defaults table above shows how many of those values moved since.
A DBA who wants replication, backups or failover in depth will find little of it here. Expect to pay about $41. Check the current price on Amazon.
3. MySQL Cookbook, 4th Edition
Sveta Smirnova and Alkin Tezuysal took over the cookbook Paul DuBois started and wrote the fourth edition and pushed it to 971 pages and more than 200 recipes across MySQL 5.7 and 8.0. Each recipe states a problem, gives working code and explains why it works. The range is the point: strings and dates, sorting and summaries, stored routines, triggers and events, JSON, MySQL Shell, replication and basic monitoring all sit in one volume.
The recipes repository loads a cookbook database you can practice on, and it is where our search found the 8.4 problem. Its create_user.sql routine calls create_user() with mysql_native_password, and a plain CREATE USER with that plugin returned ERROR 1524 on both 8.4.13 and 9.7.4. Passing caching_sha2_password as the plugin argument should clear that call; we did not rerun the routine itself. The same file also creates a sha256_password account, a plugin that is deprecated on 8.4 and 9.7 but still works. The other 9 hits sit in fix-insecure-accounts.sql, a MySQL 5.6-era script built on PASSWORD(), old_passwords and the old mysql.user.Password column, so it was already broken on 8.0.
You will not read it cover to cover, and a beginner looking for a guided course should start with picks 5 to 7. It is the most expensive book here at about $57. Check the current price on Amazon.
4. Hands-On MySQL Administration
Arunjith Aravindan, a Percona consultant, and Jeyaram Ayyalusamy wrote the newest O’Reilly MySQL title we found, published in 2024. It covers Amazon RDS, Aurora and Azure Database for MySQL alongside servers you install yourself. The early chapters cover installation on Windows and Linux, Percona Server, the transactional data dictionary and InnoDB internals, then backup and point-in-time recovery, security, replication and high availability.
It also covers the major-version upgrade from 5.7 to 8, which is the closest any book here comes to the 8.0 to 8.4 move you are likely planning now. The planning carries over even though the target version differs. The removals in our table landed in 8.4, after the book was written, so its commands need the same translation as the older books.
If you never touch a managed database, Learning MySQL covers the self-hosted path for less money. It sold for about $47 on the day we checked. Check the current price on Amazon.
5. Learning MySQL, 2nd Edition
Vinicius Grippa and Sergey Kuzmichev, both from Percona, wrote this as the first MySQL book for someone who will run the server, not just query it. Over 629 pages it moves from installation and basic queries to monitoring and troubleshooting, users and security, backup and recovery, and tuning. The second edition added chapters on high availability, load balancing and running MySQL in the cloud, which older introductions skip.
Its SQL scripts ran into none of the removed syntax in our search. Install a current LTS server with our MySQL on Ubuntu and Debian guide or the Rocky Linux and AlmaLinux version, then work the chapters on that box. The installation chapter predates the split of the MySQL repositories into LTS and Innovation tracks, which is the one part to skip in favor of a current guide.
Developers who only want SQL will find the administration half heavy. It was about $36 when we checked. Check the current price on Amazon.
6. Murach’s MySQL, 4th Edition
Joel Murach’s book uses the paired-pages format the series is known for, with the explanation on one page and the examples on the facing page. Murach’s own page says this edition was updated to MySQL 8.0.33, with deprecated data types and functions removed, the newest 8.0 point release named by any 8.0 book on this list. It covers queries and data changes first, then database design, views, transactions, stored procedures, functions, triggers and events, and ends with DBA basics and hosting on AWS.
Every chapter ends with exercises, and the book teaches both MySQL Workbench and the command-line client, so it suits a classroom or a reader who wants practice rather than reference. On Amazon the listing is sold by Murach’s own store, with 652 pages. The trade-off is depth on operations: the DBA chapters are a starter set (security, backup and restore, AWS hosting), not the treatment in picks 1 and 4.
Experienced developers who already know SQL will move through it quickly and learn little. It cost about $36 when we checked. Check the current price on Amazon.
7. MySQL Crash Course (No Starch Press)
Rick Silva wrote an introduction for developers in 18 chapters: installing MySQL and its tools, creating tables, SQL basics, data types, joins, functions, then views, procedures, triggers and events. Chapter 15 calls MySQL from PHP, Python and Java. The last three chapters are projects (a weather database, triggers that track voter data, views that protect salary data), so you finish with schemas you built rather than snippets you copied.
The chapter code came back clean in our search, which fits a book that stays on the development side. Watch the title when you order: MySQL Crash Course, 2nd Edition by Ben Forta (Addison-Wesley, 30 lessons) came out the same year, and the copy we found was a third-party listing with a shipping estimate of 11 to 12 days. The No Starch book has the yellow cover with Rick Silva named on it.
Anyone who needs backups, replication or server tuning should look at pick 5 instead. The listing we checked was about $35 from a third-party seller. Check the current price on Amazon.
8. Mastering MySQL Administration
Y V Ravi Kumar, Arun Kumar Samayam and Naresh Kumar Miryala wrote a 757-page, 14-chapter administration manual for MySQL 8.2. It covers installation and upgrades, utilities, monitoring, InnoDB Cluster and NDB Cluster, MySQL Router, the enterprise tools, security, backup and disaster recovery, and troubleshooting. The authors draw examples from large deployments at companies such as Meta and American Airlines, and that is where the book earns its length.

MySQL 8.2 was an Innovation release whose support ended in January 2024, before this book reached shelves in May. The removals in our table landed in 8.4, one LTS step later, so check its replication and authentication commands against the translation table the same way you would for the 2021 books. If InnoDB Cluster is not your design, our Percona and ProxySQL high-availability guide shows the other common layout.
Part of the book covers the MySQL enterprise tools, which a community server does not include. It was about $36 when we checked. Check the current price on Amazon.
9. MariaDB 11 Essentials
Neil Smyth wrote the only MariaDB 11 title our catalog search found, a 270-page book published in April 2025. It installs MariaDB on Windows and Linux, covers relational basics, table design, queries, joins and transactions, then indexing, triggers and events, and backup and restore. Separate chapters introduce phpMyAdmin and MySQL Workbench for readers who prefer a GUI, and each chapter closes with a quick-reference summary.
Its listed topics stop at backup and restore, so Galera clustering and replication need another source. Pair it with our MariaDB on Debian guide for a current server, and move to the MariaDB section below once you need replication. Most of the older MariaDB titles in the catalog date from 2014 and 2015, including the Packt MariaDB series and Learning MySQL and MariaDB (O’Reilly, 2015).
Readers on MySQL proper gain nothing here that pick 5 does not cover better. Amazon listed it at about $35. Check the current price on Amazon.
Translate 8.0 Book Examples for MySQL 8.4 LTS
Most of the translation is mechanical, because Oracle renamed rather than redesigned. The MySQL 8.4 changes page lists every removal; these are the ones a book reader hits first:
| Book prints (8.0) | Use on 8.4 and 9.7 |
|---|---|
CHANGE MASTER TO MASTER_HOST=... | CHANGE REPLICATION SOURCE TO SOURCE_HOST=... |
START SLAVE, STOP SLAVE | START REPLICA, STOP REPLICA |
SHOW SLAVE STATUS | SHOW REPLICA STATUS |
SHOW MASTER STATUS | SHOW BINARY LOG STATUS |
RESET MASTER | RESET BINARY LOGS AND GTIDS |
expire_logs_days | binlog_expire_logs_seconds |
default_authentication_plugin | authentication_policy |
IDENTIFIED WITH mysql_native_password | caching_sha2_password (on 8.4 only, --mysql-native-password=ON re-enables the old plugin; it was removed in 9.0) |
mysqlpump | mysqldump or the MySQL Shell dump utilities |
mysql_upgrade | Removed; the server upgrades its data dictionary at startup |
FLUSH HOSTS | TRUNCATE TABLE performance_schema.host_cache |
Re-enabling mysql_native_password on 8.4 is a compatibility switch for old client libraries, not a fix for a book exercise, and on 9.7 there is nothing to re-enable: the plugin was removed in MySQL 9.0, which is why 9.7.4 reports it as not loaded. Use caching_sha2_password everywhere, and upgrade any client that refuses it. If a lab account locks you out while you experiment, our guide to resetting the MySQL root password gets you back in without reinstalling.
MariaDB Readers Hit Different Changes
MariaDB kept the old forms that MySQL removed. Our 11.8.9 and 12.3.3 servers both accepted SHOW MASTER STATUS, SHOW SLAVE STATUS, mysql_native_password accounts and expire_logs_days, so a MySQL 8.0 book reads more smoothly on MariaDB than on MySQL 8.4. The breakage runs the other way, and it comes from features the two projects no longer share:
- MySQL-only variables:
innodb_change_bufferinganddefault_authentication_pluginboth returned ERROR 1193 on 11.8.9 and 12.3.3, so tuning and authentication settings from a MySQL book need checking. - Clustering: chapters on Group Replication, InnoDB Cluster and MySQL Router do not apply, because MariaDB clusters with Galera.
- Authentication: MariaDB added a
caching_sha2_passwordplugin for MySQL client compatibility in 12.1, so the 12.3 LTS ships it, so test any authentication chapter from a MySQL book before you rely on it.
A quick way to tell which server you have is SELECT VERSION();, which returned 12.3.3-MariaDB-ubu2404 on the MariaDB container. On a fresh MariaDB box, our MariaDB 11.8 install guide sets up a supported LTS, and the Galera, HAProxy and Keepalived guide covers the clustering our MariaDB pick does not list among its topics.
Support Windows These Books Have to Outlive
The commands in a book stay exact only while the version it teaches is supported. MySQL now runs two kinds of release: LTS lines with five years of premier and three of extended support, and Innovation releases that are supported until the next one. After 9.7, LTS and Innovation releases both use calendar numbers, so 26.7 is the July 2026 Innovation release. Support dates for MariaDB come from its maintenance policy:
| Release | Type | Released | Support ends |
|---|---|---|---|
| MySQL 8.0 | Old GA series | April 2018 | End of life April 2026 |
| MySQL 8.4 | LTS | April 2024 | Premier April 2029, extended April 2032 |
| MySQL 9.7 | LTS | April 2026 | Premier April 2031, extended April 2034 |
| MySQL 26.7 | Innovation | July 2026 | Until the next Innovation release |
| MariaDB 10.11 | LTS | February 2023 | February 2028 |
| MariaDB 11.4 | LTS | May 2024 | May 2029 |
| MariaDB 11.8 | LTS | June 2025 | June 2028 |
| MariaDB 12.3 | LTS | May 2026 | June 2029 |
Read the table against the book list and the choice gets simpler. Every MySQL pick teaches a release that is out of support, while the server you install today will be 8.4 or 9.7, so the translation table above applies to all of them for the next several years. The MariaDB pick sits closest to its target, since MariaDB kept the 8.0-era syntax. If PostgreSQL is also on your list, our PostgreSQL book guide applies the same version check to that shelf. For the layer underneath InnoDB’s tuning chapters, the storage engines, MVCC and write-ahead logging, our list of database internals books picks up where these titles stop.







