Skip to content

Releases: major/MySQLTuner-perl

v2.9.0

Choose a tag to compare

@jmrenouard jmrenouard released this 05 Jul 17:37

Release Notes - v2.9.0

Date: 2026-07-05

📝 Executive Summary

2.9.0 2026-07-05

- chore: automated project metadata update
- chore: remove execution.log from git repository and sync docs
- feat: recommend slow query log when disabled (#517)
- feat: update Total buffers output message format to display temptable sizing when active.
- fix: update commit process
- fix: update documentation and code
- test: add socket preservation tests to test_issue_781.t.
- test: add unit test for remote host physical memory detection and validation (issue #796).
- test: add unit test for temptable output formatting in Total buffers.
- ci: optimize pre-commit hook to only run unit tests when code, tests, or dependencies are modified.
- chore(build): allow build scope in compliance auditor
- chore(build): rewrite dev_sync and doc_sync in Perl for consistency
- chore(deps): update devops-infra/action-commit-push digest to fa0c793 (#929)
- chore(deps): update shogo82148/actions-setup-mysql digest to 076e636 (#930)
- chore(main): add doc links in localhost warnings and support custom local subdomains
- chore(main): add roadmap to the whitelist of allowed scopes in compliance checks.
- chore(main): hide hostname, ssl, and replication warnings on localhost (#933)
- chore(main): whitelist deps and system commit scopes in check_compliance.pl to support Dependabot and host metrics commits.
- chore(metadata): add GitHub issue templates for bugs and feature requests
- feat(cli): create an agent-ready output format (JSON/YAML) so that MySQLTuner can be easily integrated by AI agents.
- feat(cli): resolve remote memory, socket override, and temptable sizing issues
- feat(main): recommend enabling slow query log if disabled (#517)
- feat(metadata): fix test badge and update version references in READMEs
- feat(report): add pgBadger-inspired query distribution, locking latency, and temp table memory/disk spill visual analytics to HTML report
- feat(report): add verbose execution timing measurements for each section, showing both elapsed time and its percentage relative to the total script execution time.
- feat(report): add verbose timings, step percentages, and snapshot summary
- feat(report): categorize recommendations in HTML report and add Connections/Performance panels, Storage engines table, and SQL modeling stats grid.
- feat(report): finalize HTML report, YAML output, and historical comparison
- feat(report): finalize a complete HTML report file beginning in v2.8.45.
- feat(report): implement Phase 13 sectional global indicators and KPIs
- feat(report): move dump_csv_files execution step to immediately before make_recommendations.
- feat(report): print an environment audit snapshot summary (server, user, RAM, swap, versions, uptime) right after get_all_vars.
- feat(report): support historical comparison of database diagnostics and performance metrics over time.
- fix(cli): add mutually exclusive guard for json and yaml options.
- fix(cli): preserve --socket in connection arguments when --host is specified.
- fix(main): add undefined and 'NULL' guards to hr_num to eliminate uninitialized value warnings.
- fix(main): add undefined/NULL guards to hr_num to resolve uninitialized warnings
- fix(main): address PR #931 code review feedback and enhance test validations
- fix(main): calculate health score early in historical comparison to ensure scores exist for trend analysis.
- fix(main): calculate query cache efficiency using Com_select on MariaDB (MDEV-4981)
- fix(main): calculate query cache efficiency using Com_select on MariaDB, where Com_select includes query cache hits (MDEV-4981).
- fix(main): exclude MariaDB user roles and support zero-config TLS
- fix(main): exclude MariaDB user roles from SSL remote user audit
- fix(main): format YAML null as tilde (~) and multiline values using literal block style.
- fix(main): guard InnoDB log file size and log size percentage checks against uninitialized variables.
- fix(main): guard version and version comment checks in MariaDB parallel replication and query cache blocks.
- fix(main): implement cached version comparison parser to eliminate uninitialized value warnings and improve performance.
- fix(main): only recommend increasing innodb_log_buffer_size when log waits occur
- fix(main): sanitize and redact sensitive credentials from json/yaml output exports.
- fix(main): skip local /proc/loadavg read during remote database audits.
- fix(main): support MariaDB 11.4+ zero-configuration TLS and avoid false missing certificate warnings
- fix(report): flush console output trace when opening raw log files late in dumpdir mode.
- fix(test): add undef fallbacks to human_size, hr_bytes and hr_bytes_rnd mocks in tests.
- test(hook): verify pre-commit hook runs tests when test files change
- test(lab): add unit test test_issue_480.t for table_open_cache_instances recommendation (#480)
- test(lab): add unit test test_issue_517.t for slow query log recommendations (#517)
- test(lab): add unit test test_issue_810.t for issue 810
- test(lab): add unit test test_issue_810.t for remote host forcemem MB interpretation correctness (issue #810)
- test(lab): add unit test test_issue_938.t for InnoDB write log efficiency
- test(lab): add unit tests for query cache efficiency logic on MySQL and MariaDB in tests/test_issue_927.t (renamed from tests/issue_927.t).
- test(lab): normalize all repro_issue_*.t and issue_*.t test file names to test_issue_*.t
- test(lab): split unit_coverage_boost4.t into smaller topic-oriented unit tests: unit_cli_helpers.t, unit_client_privileges.t, unit_cloud_commands.t, unit_fs_info.t, unit_os_vm.t
- test(lab): utilize isolated tempfile for mock json to avoid race conditions in tests/unit_phase13_kpis.t.
- test(report): add verbose timing and audit snapshot summary formatting checks to tests/verbose_timing.t.
- test(report): update HTML report unit tests to verify connections, performance, storage, and modeling HTML sections.
- test(security): add test cases for MariaDB role exclusion and zero-configuration TLS
- test(versions): add unit tests for version caching and comparisons, resolve redundant warnings, and use tempfile in tests/unit_versions.t.
- docs(metadata): promote HTML reports and add E2E examples
- docs(metadata): remove timestamp from doc-sync generated files
- docs(roadmap): link strategic technical evolutions specification and enforce changelog staging
- docs(roadmap): specify and implement Phase XIV pgBadger-inspired HTML report modules
- docs(roadmap): specify Phase XVI (AI Agent Integration) and Phase XVII (Dockerized MCP Daemon).
- docs: add LightPath as sponsor, relocate coffee button, and use star-history chart
- docs: regenerate release notes
- docs: update repository links to major/MySQLTuner-perl and add GitHub stars badge

📈 Diagnostic Growth Indicators

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

🛠️ Internal Commit History

  • docs(releases): regenerate release notes and changelog (2ce031f)
  • docs(metadata): promote HTML reports and add E2E examples (30d5255)
  • docs: regenerate release notes (7e1cd64)
  • feat(report): add pgBadger-inspired query, lock, and temp table visual analytics to HTML report (246e0c0)
  • docs: regenerate release notes (272ff7d)
  • docs: regenerate release notes (093984a)
  • fix(main): only recommend increasing innodb_log_buffer_size when log waits occur (1aa3eaf)
  • docs: regenerate release notes (385594b)
  • docs: regenerate release notes (ae41134)
  • docs: regenerate release notes (6db4faf)
  • docs: regenerate release notes (9865449)
  • fix(main): exclude MariaDB user roles and support zero-config TLS (aee6781)
  • docs: regenerate release notes (f715c47)
  • docs: regenerate release notes (d46e3c8)
  • docs: regenerate release notes (38ecb2f)
  • docs: regenerate release notes (3b9c75a)
  • docs: regenerate release notes (2cfd624)
  • chore(main): add doc links in localhost warnings and support custom local subdomains (9f67656)
  • docs: regenerate release notes (b74e098)
  • docs: regenerate release notes (0005a69)
  • chore(build): allow build scope in compliance auditor (2bba15f)
  • chore(build): rewrite dev_sync and doc_sync in Perl for consistency (645c3d9)
  • chore(main): hide hostname, ssl, and replication warnings on localhost (#933) (4f3e70e)
  • docs: regenerate release notes (be838ab)
  • docs: regenerate release notes (389c4ad)
  • docs: regenerate release notes (d424fae)
  • docs: regenerate release notes (1575463)
  • docs: regenerate release notes (7006061)
  • feat(cli): resolve remote memory, socket override, and temptable sizing issues (7e3a39c)
  • test(hook): verify pre-commit hook runs tests when test files change (41abef0)
  • docs: regenerate release notes (9b9e007)
  • ci: optimize pre-commit hook to only run unit tests when code, tests, or dependencies are modified (596df4c)
  • docs: regenerate release notes (5759b73)
  • fix: update documentation and code (1008ba4)
  • docs: regenerate release notes (7fd2391)
  • test(lab): add unit test test_issue_810.t for issue 810 (6ece0c3)
  • docs: regenerate release notes (0b5c859)
  • feat: recommend slow query log when disabled (#517) (da6d437)
  • docs: add LightPath as sponsor, relocate coffee button, and use star-history chart (31e3638)
  • docs: update repository links to major/MySQLTuner-perl and add GitHub stars badge (4cd208e)
  • docs: regenerate release notes (a754147)
  • fix(main): add undefined/NULL guards to hr_num to resolve uninitialized warnings (0a87482)
  • docs(roadmap): link strategic technical evolutions specification and enforce changelog staging (136a977)
  • docs: rege...
Read more

v2.8.45

Choose a tag to compare

@jmrenouard jmrenouard released this 15 Jun 20:21
289d87f

Release Notes - v2.8.45

Date: 2026-06-04

📝 Executive Summary

2.8.45 2026-06-04

- chore: restore doc_sync.py utility script and run doc synchronization.
- feat: export both complete (unfiltered) and filtered CSV files for sys views in dumpdir.
- feat: filter system databases from PFS/sys schema analysis queries and dumpdir exports.
- feat: integrate temptable_max_ram into per-thread buffer memory calculations.
- feat: bypass temptable_max_ram logic if internal_tmp_mem_storage_engine is set to MEMORY or if the engine is MariaDB.
- feat: verify temptable_max_mmap against available disk space in tmpdir.
- feat: add InnoDB index/data ratio check and CSV dump for tables > 50,000 rows.
- feat: display Host/RAM info and Database Uptime in system_recommendations() under remote or cloud modes.
- feat: display database server uptime in all configurations inside get_system_info() and system_recommendations().
- fix: normalize dollar sign escaping in SQL queries to prevent syntax errors and shell interpolation failures.
- fix: skip x$ps_schema_table_statistics_io views in dumpdir schema exports to prevent execution failures on newer MariaDB releases.
- perf: optimize column exploration in mysql_tables by fetching engine and column details in bulk (reducing queries from 2N+3 to 2 per table).
- test: update schemadir.t and repro_no_index.t mocks to match the bulk queries.
- test: update unit tests to verify both filtered and unfiltered dumpdir exports.
- test: add unit tests for system database filtering logic.
- test: add unit tests for temptable memory limit calculations.
- test: add unit test for index/data ratio calculation logic.
- test: add unit tests for temptable_max_mmap disk space checks, MEMORY engine bypass, and MariaDB bypass.
- test: add complementary subtest for non-binding temptable_max_ram scenario to tests/issue_864.t.
- test: add unit tests for compliance checks, doc synchronization, and release files verification.
- test: add unit test for remote/cloud host recap in tests/unit_coverage_boost3.t.

📈 Diagnostic Growth Indicators

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

🛠️ Internal Commit History

  • perf: optimize column exploration in mysql_tables (0e34fe9)
  • chore: update documentation sync timestamp and execution logs (232918d)
  • docs(metadata): update automatically generated README timestamp (24224ea)
  • docs: regenerate release notes (34b3229)
  • feat(cli): export both complete and filtered CSV files for sys views (ebd5409)
  • test(lab): create tests/issue_923.t and restore tests/issue_864.t (be4bd30)
  • chore: update execution logs and sync documentation timestamp (cab32f1)
  • fix(test): only verify release tag consistency if ref is a tag in check_release_files.sh (a0a3341)
  • docs(metadata): update automatically generated README timestamp (abe1eef)
  • docs: regenerate release notes (748bb03)
  • feat(cli): bypass temptable_max_ram on MEMORY/MariaDB and verify temptable_max_mmap (94a19ee)
  • docs: generate USAGE.md (8d0ddeb)
  • chore: release v2.8.45 (0347fad)

⚙️ Technical Evolutions

➕ CLI Options Added

  • --innodb_buffer_stats_by_schema
  • --innodb_buffer_stats_by_table
  • --processlist
  • --schema_auto_increment_columns
  • --schema_index_statistics
  • --schema_object_overview
  • --schema_redundant_indexes
  • --schema_table_lock_waits
  • --schema_table_statistics
  • --schema_table_statistics_with_buffer
  • --schema_tables_with_full_table_scans
  • --schema_unused_indexes
  • --session
  • --statement_analysis
  • --statements_with_errors_or_warnings
  • --statements_with_full_table_scans
  • --statements_with_runtimes_in_95th_percentile
  • --statements_with_sorting
  • --statements_with_temp_tables

➖ CLI Options Deprecated

  • --data
  • --template

✅ 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.45
docker pull jmrenouard/mysqltuner:latest

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

v2.8.44

Choose a tag to compare

@jmrenouard jmrenouard released this 29 May 20:33

Release Notes - v2.8.44

Date: 2026-05-27

📝 Executive Summary

2.8.44 2026-05-27

- chore: implement compliance check script to enforce zero-dependency and single-file design.
- chore: implement post-checkout Git hook to automatically verify version consistency on checkout.
- feat: develop automated end-of-life (EOL) date synchronization check script to audit LTS versions in CI.
- feat: develop automated specification consistency auditor and Spec-to-Test Mapping Matrix.
- feat: develop LTS API auto-bumping utility with GitHub Actions integration.
- feat: develop version bump dry-run simulation script and post-commit Git hook for automated doc sync.
- feat: re-implement HTML report option (--reportfile) removing CPAN Text::Template dependency (#791).
- feat: make unit-tests target quiet/clean by default in Makefile, and add unit-tests-debug target for verbose debugging.
- fix: resolve false positive AUTO_INCREMENT near max capacity warning on BIGINT UNSIGNED columns with low row count by checking type-specific limits using information_schema (#913).
- fix: refactor version parsing regexes in mysql_version_eq() and helper functions to prevent uninitialized value warnings.
- fix: resolve compile-time and runtime warnings in unit tests, mock override ordering, and definedness checks.
- fix: fix $fh scoping bug in process_sysbench_metrics where file handle was declared inside if(!open) guard and went out of scope before read loop.
- fix: fix $fh scoping bug in historical_comparison (same pattern as process_sysbench_metrics).
- fix: fix hash initialization bug in merge_hash (my %result = {} changed to my %result = ()).
- test: add unit test for type-specific auto_increment capacity warnings.
- test: update issue_37.t to support new information_schema query format.
- test: add unit test for HTML report generation logic.
- test: expand unit tests with parameterized test matrix covering supported/outdated versions across major versions 5, 8, 9, 10, and 11.
- test: add unit_system.t to verify architecture, transport, and formatting helpers, increasing test coverage to 61%.
- test: add unit_coverage_boost.t covering 12 pure utility functions (trim, escape_html, hr_bytes, merge_hash, etc.).
- test: add unit_coverage_boost2.t covering 17 I/O, MariaDB engine, and print wrapper functions (redwrap, file2array, mariadb_tokudb, etc.).
- test: add unit_coverage_boost3.t with deep-mocked tests for 22 diagnostic subroutines (mysql_plugins, mysql_indexes, system_recommendations, check_query_anti_patterns, process_sysbench_metrics, etc.).
- test: improve subroutine coverage from 55% to 92% (154 out of 167 subroutines).
- ci: configure CI workflows to trigger on all branches and execute compliance checks.
- ci: add EOL date check step to CI workflow.
- docs: enhance release-manager workflow with branch lifecycle and checkout hook instructions.
- docs: add Docker installation instructions (docker pull/run) and release location to all README files (EN, FR, IT, RU).

📈 Diagnostic Growth Indicators

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

🛠️ Internal Commit History

  • docs: add Docker install instructions and releases location in all READMEs (e1b77ed)
  • docs: regenerate release notes (849e4d2)
  • feat(test): clean unit tests output and fix mock compilation warnings (35ecd52)
  • chore(ci): ignore execution.log in gitignore (a9ca211)
  • docs: regenerate release notes (acd852c)
  • fix(cli): resolve false positive AUTO_INCREMENT near max capacity warning (#913) (39d96eb)
  • chore(ci): update execution log with generate_usage outputs (1c60bff)
  • feat(ci): implement version dry-run validation, update LTS support tests, and update execution log (a78c747)
  • feat(ci): implement EOL sync, version dry-run validation, and git hooks (b59a2f7)
  • docs: generate USAGE.md (225e3e4)
  • feat(versions): update validate_mysql_version with 9.6 support and remove 9.5 (d2ca4d6)
  • feat(report): re-implement HTML report and cleanup templates (d3b6d3c)

⚙️ Technical Evolutions

➕ CLI Options Added

  • --compress-dump
  • --dump-limit

➖ CLI Options Deprecated

  • --data
  • --template

✅ 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.44
docker pull jmrenouard/mysqltuner:latest

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

v2.8.43

Choose a tag to compare

@jmrenouard jmrenouard released this 27 May 21:11

Release Notes - v2.8.43

Date: 2026-05-25

📝 Executive Summary

2.8.43 2026-05-25

- chore: bump version to 2.8.43.
- feat: add --compress-dump option to compress SQL schema dumps using gzip.
- feat: add --dump-limit option to limit row extraction count for CSV dumps.
- feat: export naming convention deviations and missing foreign keys to CSV files.
- feat: write schema export manifest files to track dumped files.
- feat: add unified health score breakdown to CLI output and HTML laboratory reports.
- feat: implement test output auditor script to scan test results for Perl execution errors and runtime warnings.
- fix: resolve invalid login credentials error by defaulting to root when only --pass is set and escaping single quotes in passwords (#781).
- fix: resolve fake aborted connections count increase during password strength checks (#900).
- fix: resolve EOF metadata corruption and duplicated configurations in Emacs block (#904).
- fix: prevent plaintext password leakage in weak password diagnostic messages.
- fix: implement symlink verification and atomic writes for aborted connects state file protection.
- fix: append transport-specific host and container identifiers in state file path to prevent collisions.
- fix: correct authentication plugin checks mock implementation in unit tests to prevent health score deduction bypass.
- test: strengthen authentication plugin checks and add verification suite for state file protections.
- test: add comprehensive test suite for weighted health score and score breakdowns.
- ci: optimize release notes generation to isolate branch changes.
- docs: complete documentation refresh synchronizing README.md, INTERNALS.md, USAGE.md, and all translated READMEs with v2.8.43 script capabilities.
- docs: improve authentication plugins algorithm labels and resolve absolute documentation links.
- perf: optimize --dumpdir performance by excluding heavy RDS/Aurora and internal metrics.
- refactor: catch explicit exception classes in build/release_gen.py to prevent masking system signals.
- refactor: replace generic file preview logic with explicit descriptive labeling for database audit artifacts.
- refactor: html report to get better information about each version.

📈 Diagnostic Growth Indicators

Metric Current Progress Status
Total Indicators 15 +2 🚀
Efficiency Checks 0 0 🛡️
Risk Detections 2 0 🛡️
Information Points 13 +2 🚀

🧪 New Diagnostic Capabilities

ℹ️ New Information Points

  • SKIPPING $info_pf_table
  • SKIPPING $info_s_table

🛠️ Internal Commit History

  • docs: complete documentation refresh for v2.8.43 (730cb54)
  • feat: implement parallel run resource limits, post-test cleanup, and TAP output (8274dce)
  • docs: sync project documentation and reorganize roadmap/potential issues (5c7e0fa)
  • fix(ci): fix declared_refs and segment HTML report tables (e4fefe8)
  • feat: release v2.8.43 with schema export improvements and security hardening (c7d45d2)
  • docs: generate FEATURES.md (3b51bf5)
  • docs: generate USAGE.md (c0d9c0f)

⚙️ Technical Evolutions

➕ CLI Options Added

  • --compress-dump
  • --dump-limit

✅ 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.43
docker pull jmrenouard/mysqltuner:latest

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

v2.8.42

Choose a tag to compare

@jmrenouard jmrenouard released this 25 May 11:55

Release Notes - v2.8.42

Date: 2026-05-25

📝 Executive Summary

2.8.42 2026-05-25

- chore: bump version to 2.8.42.
- fix: resolve fake aborted connections count increase during password strength checks (#900).
- fix: resolve EOF metadata corruption and duplicated configurations in Emacs block (#904).
- ci: optimize release notes generation to isolate branch changes.
- perf: optimize --dumpdir performance by excluding heavy RDS/Aurora and internal metrics.

📈 Diagnostic Growth Indicators

Metric Current Progress Status
Total Indicators 15 +2 🚀
Efficiency Checks 0 0 🛡️
Risk Detections 2 0 🛡️
Information Points 13 +2 🚀

🧪 New Diagnostic Capabilities

ℹ️ New Information Points

  • SKIPPING $info_pf_table
  • SKIPPING $info_s_table

🛠️ Internal Commit History

  • docs: finalize changelog and release notes for v2.8.42 (81efefb)
  • ci: optimize release notes generation to isolate branch changes (0bcf8bc)
  • docs: sync changelog, release notes, memory database and add tests for v2.8.42 (e2a8bd8)
  • docs: generate FEATURES.md (54b803c)
  • style: tidy mysqltuner.pl (933038c)
  • docs: update v2.8.42 release notes and optimize dumpdir exclusions (57b5e6e)
  • chore: prepare release v2.8.42 (0a0aaeb)

⚙️ Technical Evolutions

✅ 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
docker pull jmrenouard/mysqltuner:latest

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

v2.8.41

Choose a tag to compare

@jmrenouard jmrenouard released this 17 May 07:23
5a70ea8

Release Notes - v2.8.41

Date: 2026-05-17

📝 Executive Summary

2.8.41 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.41 (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.41 (abdcb0e)
  • ci: fix preflight scripts for changelog header and commitlint refname ambiguity (dd323a4)
  • feat: release 2.8.41 (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.41 final stabilization (c337213)
  • feat: release 2.8.41 final polish (a230c55)
  • feat: release 2.8.41 final polish (14e3a31)
  • feat: release 2.8.41 (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.41
docker pull jmrenouard/mysqltuner:latest

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

v2.7.0

Choose a tag to compare

@jmrenouard jmrenouard released this 06 Oct 21:19
60e2aa5

What's Changed

New Contributors

Full Changelog: v2.6.0...v2.7.0

Release v2.6.0

Choose a tag to compare

@github-actions github-actions released this 06 Aug 08:54
13ec507

Changes in this Release:
Please consult commit log and issue tracker on Github for more information.

#786
#795
#793

February 2024 release

Choose a tag to compare

@jmrenouard jmrenouard released this 06 Feb 17:14
7ffd825

commit 4fdd801
Author: Jean-Marie Renouard jmrenouard@gmail.com
Date: Tue Feb 6 18:00:04 2024 +0100

Generate CVE list at 2024-02-06T17:59:02+01:00

commit dd2ed72
Author: Jean-Marie Renouard jmrenouard@gmail.com
Date: Tue Feb 6 17:58:57 2024 +0100

Indenting mysqltuner at 2024-02-06T17:58:52+01:00

commit 30d1d9e
Author: Jean-Marie Renouard jmrenouard@gmail.com
Date: Tue Feb 6 17:58:35 2024 +0100

Generate 2.5.2 sub version at 2024-02-06T17:58:35+01:00

commit b3a7765
Author: Jean-Marie Renouard jmrenouard@gmail.com
Date: Sun Feb 4 00:34:49 2024 +0100

Two separate garb install script with or without SSL

commit 27525ca
Author: Jean-Marie Renouard jmrenouard@gmail.com
Date: Sun Feb 4 00:31:54 2024 +0100

Fix issue in Buffer Pool instead of Log Buffer Pool

commit 65b1c13
Author: Jean-Marie Renouard jmrenouard@gmail.com
Date: Thu Jan 18 05:38:00 2024 +0100

#741 false positive in log error detection

commit 56d16e1
Merge: 3fd633b b608da0
Author: Jean-Marie Renouard jmrenouard@gmail.com
Date: Wed Jan 17 18:35:27 2024 +0100

Merge pull request #745 from FabioPedretti/master

Enable color by default when running on a terminal

commit b608da0
Author: Fabio Pedretti pedretti.fabio@gmail.com
Date: Thu Jan 11 11:27:25 2024 +0100

Enable color by default when running on a terminal

commit 3fd633b
Author: Jean-Marie Renouard jmrenouard@gmail.com
Date: Fri Dec 1 00:46:15 2023 +0100

Generate 2.5.0 minor version at 2023-12-01T00:45:45+01:00

commit 77699b7
Author: Jean-Marie Renouard jmrenouard@gmail.com
Date: Fri Dec 1 00:45:34 2023 +0100

Suggest incrementing log_buffer_size to improve InnoDB Write Log efficiency.
#462

commit c20bcbf
Merge: b10cdb7 01a1e53
Author: Jean-Marie Renouard jmrenouard@gmail.com
Date: Thu Nov 30 21:51:53 2023 +0100

Merge pull request #744 from paskal/remove_innodb_stats_on_metadata

Remove innodb_stats_on_metadata mentions in Readme

commit 01a1e53
Author: Dmitry Verkhoturov paskal.07@gmail.com
Date: Thu Nov 30 15:59:51 2023 +0100

remove innodb_stats_on_metadata mentions in Readme

That flag is off by default, starting with MySQL 5.7, and the tool
itself reports it in the "Performance Metrics" section.

v2.2.12

Choose a tag to compare

@jmrenouard jmrenouard released this 09 Sep 10:14
76c2156
v2.2.12