github jmrenouard/MySQLTuner-perl v2.8.42

pre-release4 hours ago

Release Notes - v2.8.42

Date: 2026-05-17

📝 Executive Summary

2.8.42 2026-05-17

- chore: automated project maintenance and cleanup (extracted `RULES.md`, `MEMORY_DB.md`, `TESTS.md`).
- feat: enhance --forcemem and --forceswap to support human-readable memory units (B, K, M, G, T, P).
- feat: implement idiomatic Perl Boolean practices across the project (#34).
- feat: add recommendation for `table_open_cache_instances` based on CPU cores (#480).
- feat: improve syslog and systemd journal detection for error logs (#440).
- feat: initialize `$mysqllogin` to avoid uninitialized value warnings (#490).
- fix: filter MySQL CLI password warning from execute_system_command output.
- fix: prevent division by zero crash in percentage() with non-numeric values.
- fix: resolve SQL execution failure (return code 256) in MySQL 9.x containers by updating batch execution flags.
- fix: Restore compatibility with older Perl versions (by @jasongill).
- fix: wrap template loading in `get_template_model()` to avoid `uninitialized value` warnings during `require`.
- fix: allow `--updateversion` to work on hosts without `mysql`/`mariadb` installed (#36).
- fix: skip local SSL certificate warnings if they are in an inaccessible `datadir` (#33).
- fix: correct false positives in `check_removed_innodb_variables` by distinguishing real server variables from internal ones (#32).
- fix: improve join_buffer_size recommendation formatting in Variables to Adjust (#881).
- fix: suppress MySQL client warning regarding 'DISABLED' boolean value for SSL (#887).
- fix: correctly handle `--defaults-file` and `--defaults-extra-file` without dropping options (#605).
- fix: restore Debian maintenance account automatic login by using idiomatic boolean checks (#896).
- fix: include `tmp_table_size` in per-thread memory calculation for better accuracy (#864).
- fix: add retry mechanism for initial `SELECT VERSION()` query to improve connection resilience (#782).
- fix: prevent `AUTO_INCREMENT` capacity false positives for empty tables (#37).
- fix: refactor InnoDB Redo Log Capacity logic to be workload-based and avoid false positives (#714, #737, #777).
- fix: add guards against division by zero in calculations for improved stability (#435).
- fix: add truthiness guards to `mysql_innodb` and `mysql_stats` subroutines.
- fix: improve `which` logic for better container/minimal environment support.
- fix: enhance login failure reporting with detailed output.
- fix: handle Plesk Obsidian 18.0.76.5+ removing --show-password (#42).
- test: add validation tests for auth, missing args, and formatting.
- ci: enhance Quality Gate to strictly enforce zero-warning policy on GitHub Actions tests.
- ci: implement dynamic CI test environment detection by wrapping configuration extraction.
- ci: refactor GitHub Actions release and prerelease workflows to support dynamic versions and checksum generation.
- ci: refine audit_logs.pl to prevent false positive warnings on successful output.
- ci: migrate maintenance script to GitHub Actions.
- refactor: update CLI metadata to use `undef` as default for string/path options.
- refactor: replace non-idiomatic `eq '0'`, `ne 0`, etc., with standard truthiness checks.
- refactor: replace "master"/"slave" terminology with "source"/"replica" for cultural sensitivity (#888).
- chore(deps): update docker/setup-buildx-action action to v4.
- chore(deps): update docker/build-push-action action to v7.
- chore(deps): update docker/login-action action to v4.
- chore(deps): update softprops/action-gh-release action to v3.

📈 Diagnostic Growth Indicators

Metric Current Progress Status
Total Indicators 12 0 🛡️
Efficiency Checks 0 0 🛡️
Risk Detections 2 0 🛡️
Information Points 10 0 🛡️

🛠️ Internal Commit History

  • docs: consolidate governance agents and update release notes for v2.8.42 (9e1e8f8)
  • ci: refine audit_logs.pl to prevent false positive warnings on successful output (cf49345)
  • fix: resolve SQL execution failure in MySQL 9.x containers (b0f71de)
  • style: tidy mysqltuner.pl (f8defd5)
  • test: add validation tests for auth, missing args, and formatting (bd10c4b)
  • feat: enhance --forcemem and --forceswap to support human-readable memory units (b357f7e)
  • fix: handle Plesk Obsidian 18.0.76.5+ removing --show-password (#42) (632a4f9)
  • feat: finalize release 2.8.42 (abdcb0e)
  • ci: fix preflight scripts for changelog header and commitlint refname ambiguity (dd323a4)
  • feat: release 2.8.42 (e95c3e9)
  • style: tidy mysqltuner.pl (745c909)
  • ci: refactor Github release definitions with pre-releases and deliverables support (1da1bb2)
  • ci: enforce zero-warning policy and dynamic test env (80788de)
  • feat: release 2.8.42 final stabilization (c337213)
  • feat: release 2.8.42 final polish (a230c55)
  • feat: release 2.8.42 final polish (14e3a31)
  • feat: release 2.8.42 (b4a13e6)

⚙️ Technical Evolutions

  • MySQL 9.x Container Fix: Resolved SQL execution failures (return code 256) in MySQL 9.x containers by updating batch execution flags.
  • Audit Log Refinement: Prevented false positive warnings in audit_logs.pl when output contains successful [OK] markers.
  • Test Coverage: Added validation tests for authentication, missing arguments, and formatting edge cases.
  • Upstream Sync: Rebased on major/MySQLTuner-perl:master to integrate latest dependency updates (commitlint v21, actions/checkout v6, non-major deps v20.5.3).

✅ Laboratory Verification Results

  • Automated TDD suite passed.
  • Multi-DB version laboratory execution validated.
  • Performance indicator delta analysis completed.

Deliverables

Standalone Script & Data

Asset Checksum
mysqltuner.pl [sha256]
basic_passwords.txt [sha256]
vulnerabilities.csv [sha256]

Docker Images

docker pull jmrenouard/mysqltuner:2.8.42

Checksums (.sha256) are available in the assets list below.

Don't miss a new MySQLTuner-perl release

NewReleases is sending notifications on new releases.