From 8f6e53240e983e44078316a59ea4d04ce490ae40 Mon Sep 17 00:00:00 2001 From: Jean-Marie Renouard Date: Fri, 8 Nov 2024 18:00:01 +0100 Subject: [PATCH 1/3] Generate USAGE.md at 2024-11-08T18:00:00+01:00 --- USAGE.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/USAGE.md b/USAGE.md index 72e9bc8e..2ca1b5dd 100644 --- a/USAGE.md +++ b/USAGE.md @@ -1,6 +1,6 @@ # NAME - MySQLTuner 2.6.0 - MySQL High Performance Tuning Script + MySQLTuner 2.6.1 - MySQL High Performance Tuning Script # IMPORTANT USAGE GUIDELINES @@ -52,6 +52,7 @@ You must provide the remote server's total memory when connecting to other serve --verbose Print out all options (default: no verbose, dbstat, idxstat, sysstat, tbstat, pfstat) --color Print output in color --nocolor Don't print output in color + --noprettyicon Print output with legacy tag [OK], [!!], [--], [CMD], ... --nogood Remove OK responses --nobad Remove negative/suggestion responses --noinfo Remove informational responses From b1409e72716eebb792cb68559a8f0b7c0a764953 Mon Sep 17 00:00:00 2001 From: Jean-Marie Renouard Date: Fri, 8 Nov 2024 18:02:23 +0100 Subject: [PATCH 2/3] Generate End Of Life (endoflive.date) at 2024-11-08T18:02:22+01:00 --- mariadb_support.md | 23 +++++++++++++++++++++++ mysql_support.md | 14 ++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 mariadb_support.md create mode 100644 mysql_support.md diff --git a/mariadb_support.md b/mariadb_support.md new file mode 100644 index 00000000..d353ca3d --- /dev/null +++ b/mariadb_support.md @@ -0,0 +1,23 @@ +# Version Support for mariadb + +| Version | End of Support Date | LTS | Status | +|---------|------------------------|-----|--------| +| 11.5 | N/A | NO | Supported | +| 11.4 | 2029-05-29 | YES | Supported | +| 11.3 | 2024-05-29 | NO | Outdated | +| 11.2 | 2024-11-21 | NO | Supported | +| 11.1 | 2024-08-21 | NO | Outdated | +| 11.0 | 2024-06-06 | NO | Outdated | +| 10.11 | 2028-02-16 | YES | Supported | +| 10.10 | 2023-11-17 | NO | Outdated | +| 10.9 | 2023-08-22 | NO | Outdated | +| 10.8 | 2023-05-20 | NO | Outdated | +| 10.7 | 2023-02-09 | NO | Outdated | +| 10.6 | 2026-07-06 | YES | Supported | +| 10.5 | 2025-06-24 | YES | Supported | +| 10.4 | 2024-06-18 | YES | Outdated | +| 10.3 | 2023-05-25 | NO | Outdated | +| 10.2 | 2022-05-23 | NO | Outdated | +| 10.1 | 2020-10-17 | NO | Outdated | +| 10.0 | 2019-03-31 | NO | Outdated | +| 5.5 | 2020-04-11 | YES | Outdated | diff --git a/mysql_support.md b/mysql_support.md new file mode 100644 index 00000000..1a0c1e98 --- /dev/null +++ b/mysql_support.md @@ -0,0 +1,14 @@ +# Version Support for mysql + +| Version | End of Support Date | LTS | Status | +|---------|------------------------|-----|--------| +| 9.1 | N/A | NO | Supported | +| 9.0 | 2024-10-15 | NO | Outdated | +| 8.4 | 2032-04-30 | YES | Supported | +| 8.3 | 2024-04-10 | NO | Outdated | +| 8.2 | 2023-12-14 | NO | Outdated | +| 8.1 | 2023-10-25 | NO | Outdated | +| 8.0 | 2026-04-30 | NO | Supported | +| 5.7 | 2023-10-31 | NO | Outdated | +| 5.6 | 2021-02-28 | NO | Outdated | +| 5.5 | 2018-12-31 | NO | Outdated | From b189c548811f0b0f36451d470dfcb1e8b8982ca9 Mon Sep 17 00:00:00 2001 From: Jean-Marie Renouard Date: Fri, 8 Nov 2024 18:09:18 +0100 Subject: [PATCH 3/3] New version with icons and supported versions files --- CURRENT_VERSION.txt | 2 +- Makefile | 8 +++++++- README.md | 24 +++++++++--------------- build/endoflife.sh | 36 ++++++++++++++++++++++++++++++++++++ mysqltuner.pl | 24 +++++++++++++++++++----- 5 files changed, 72 insertions(+), 22 deletions(-) create mode 100644 build/endoflife.sh diff --git a/CURRENT_VERSION.txt b/CURRENT_VERSION.txt index fe16b348..6a6a3d8e 100644 --- a/CURRENT_VERSION.txt +++ b/CURRENT_VERSION.txt @@ -1 +1 @@ -2.5.4 +2.6.1 diff --git a/Makefile b/Makefile index ebe2e6b6..5f94e7d2 100644 --- a/Makefile +++ b/Makefile @@ -43,7 +43,13 @@ generate_cve: generate_version_file: rm -f CURRENT_VERSION.txt grep "# mysqltuner.pl - Version" ./mysqltuner.pl | awk '{ print $$NF}' > CURRENT_VERSION.txt - + +generate_eof_files: + bash ./build/endoflife.sh mariadb + bash ./build/endoflife.sh mysql + git add ./*_support.md + git commit -m "Generate End Of Life (endoflive.date) at $(shell date --iso=seconds)" + generate_features: perl ./build/genFeatures.sh git add ./FEATURES.md diff --git a/README.md b/README.md index 184fd95b..446348a9 100644 --- a/README.md +++ b/README.md @@ -40,23 +40,17 @@ MySQLTuner needs you Compatibility ==== -Test result are available here: - -* MySQL 8.0, 8.2, 8.3 (full support) -* Percona Server 8.0, 8.2, 8.3 (full support) -* MariaDB 10.4, 10.5, 10.6, 10.11, 11.0, 11.1, 11.2 (full support) +Test result are available here for LTS only: +* MySQL (full support) +* Percona Server (full support) +* MariaDB (full support) * Galera replication (full support) * Percona XtraDB cluster (full support) -* Mysql Replications (partial support, no test environment) - -* MySQL 8.1 (not supported, deprecated version) -* Percona Server 5.7 (not supported, deprecated version) -* MySQL 5.7 (not supported, deprecated version) -* MySQL 5.6 and earlier (not supported, deprecated version) -* Percona Server 5.6 (not supported, deprecated version) -* MariaDB 10.7, 10.8, 10.9, 10.10 (not supported, deprecated version) -* MariaDB 10.3 and earlier (not supported, deprecated version) -* MariaDB 5.5 (not supported, deprecated version) +* MySQL Replication (partial support, no test environment) + +Thanks to [endoflife.date](endoflife.date) + * Refer to [MariaDB Supported versions](https://github.com/major/MySQLTuner-perl/blob/master/mariadb_support.md). + * Refer to [MySQL Supported versions](https://github.com/major/MySQLTuner-perl/blob/master/mysql_support.md). ***Windows Support is partial*** diff --git a/build/endoflife.sh b/build/endoflife.sh new file mode 100644 index 00000000..f35a834d --- /dev/null +++ b/build/endoflife.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# Check if a product name has been provided as an argument +if [ -z "$1" ]; then + echo "Usage: $0 " + exit 1 +fi + +# Product name passed as an argument +produit="$1" + +# URL of the API for the specified product +url="https://endoflife.date/api/${produit}.json" + +# Perform the HTTP GET request with curl +response=$(curl --silent --fail "$url") + +# Check if the request was successful +if [ $? -ne 0 ]; then + echo "Error: Unable to retrieve information for product '$produit'." + exit 1 +fi + +curl --silent --fail "$url" | jq . +# Get the current date +current_date=$(date +%Y-%m-%d) + +# Generate a Markdown file with a single table sorted by end of support date +echo -e "# Version Support for $produit\n" > ${produit}_support.md + +echo "| Version | End of Support Date | LTS | Status |" >> ${produit}_support.md +echo "|---------|------------------------|-----|--------|" >> ${produit}_support.md +echo "$response" | jq -r --arg current_date "$current_date" '.[] | {cycle, eol, lts} | .status = (if (.eol | type) == "string" and .eol > $current_date then "Supported" elif (.eol | type) == "string" then "Outdated" else "Supported" end) | .lts_status = (if .lts == true then "YES" else "NO" end) | select(.eol != null) | [.] | sort_by(.eol)[] | "| " + .cycle + " | " + (.eol // "N/A") + " | " + .lts_status + " | " + .status + " |"' >> ${produit}_support.md + +# Indicate that the Markdown file has been generated +echo "The file ${produit}_support.md has been successfully generated." diff --git a/mysqltuner.pl b/mysqltuner.pl index 90875e87..6af4f5e3 100755 --- a/mysqltuner.pl +++ b/mysqltuner.pl @@ -1,5 +1,5 @@ #!/usr/bin/env perl -# mysqltuner.pl - Version 2.6.0 +# mysqltuner.pl - Version 2.6.1 # High Performance MySQL Tuning Script # Copyright (C) 2015-2023 Jean-Marie Renouard - jmrenouard@gmail.com # Copyright (C) 2006-2023 Major Hayden - major@mhtx.net @@ -57,7 +57,7 @@ package main; #use Env; # Set up a few variables for use in the script -my $tunerversion = "2.6.0"; +my $tunerversion = "2.6.1"; my ( @adjvars, @generalrec ); # Set defaults @@ -117,7 +117,8 @@ package main; "dumpdir" => '', "feature" => '', "dbgpattern" => '', - "defaultarch" => 64 + "defaultarch" => 64, + "noprettyicon" => 0 ); # Gather the options from the command line @@ -154,7 +155,7 @@ package main; 'defaults-extra-file=s', 'dumpdir=s', 'feature=s', 'dbgpattern=s', 'defaultarch=i', 'experimental', - 'nondedicated' + 'nondedicated', 'noprettyicon' ) or pod2usage( -exitval => 1, @@ -232,6 +233,7 @@ package main; $opt{cvefile} = 'vulnerabilities.csv'; #CVE File for vulnerability checks } +$opt{prettyicon}=0 if $opt{prettyicon}!=1; $opt{nocolor} = 1 if defined( $opt{outputfile} ); $opt{tbstat} = 0 if ( $opt{notbstat} == 1 ); # Don't print table information $opt{colstat} = 0 if ( $opt{nocolstat} == 1 ); # Don't print column information @@ -275,6 +277,8 @@ package main; # Setting up the colors for the print styles my $me = `whoami`; $me =~ s/\n//g; + + my $good = ( $opt{nocolor} == 0 ) ? "[\e[0;32mOK\e[0m]" : "[OK]"; my $bad = ( $opt{nocolor} == 0 ) ? "[\e[0;31m!!\e[0m]" : "[!!]"; my $info = ( $opt{nocolor} == 0 ) ? "[\e[0;34m--\e[0m]" : "[--]"; @@ -282,6 +286,15 @@ package main; my $cmd = ( $opt{nocolor} == 0 ) ? "\e[1;32m[CMD]($me)" : "[CMD]($me)"; my $end = ( $opt{nocolor} == 0 ) ? "\e[0m" : ""; +if ($opt{prettyicon} == 1) { + $good = "✔ "; + $bad = "✘ "; + $info = "ℹ "; + $deb = "⚙ "; + $cmd = "⌨️($me)"; + $end = " "; +} + # Maximum lines of log output to read from end my $maxlines = 30000; @@ -7441,7 +7454,7 @@ sub which { =head1 NAME - MySQLTuner 2.6.0 - MySQL High Performance Tuning Script + MySQLTuner 2.6.1 - MySQL High Performance Tuning Script =head1 IMPORTANT USAGE GUIDELINES @@ -7493,6 +7506,7 @@ =head1 OUTPUT OPTIONS --verbose Print out all options (default: no verbose, dbstat, idxstat, sysstat, tbstat, pfstat) --color Print output in color --nocolor Don't print output in color + --noprettyicon Print output with legacy tag [OK], [!!], [--], [CMD], ... --nogood Remove OK responses --nobad Remove negative/suggestion responses --noinfo Remove informational responses