MariaDB: "mysqladmin: Deprecated program name. It will be removed in a future release, use '/usr/bin/mariadb-admin' instead"

Hallo zusammen,

ich habe auf meinem Ubuntu 22.04 (mit Nextcloud) die MariaDB von Version 10.11 auf 11.3.1 aktualisiert.

Ich erhalten nun am Service “MySQL Instance mysql” folgende Meldung.

mysqladmin: Deprecated program name. It will be removed in a future release, use ‘/usr/bin/mariadb-admin’ instead

CMK-Version: Checkmk Cloud Edition 2.2.0p20

Was kann ich jetzt machen?

MfG Paul

Hallo Paul

Variante1:
Ticket bei Checkmk eröffnen und warten bis sie mk_mysql überarbeiten

Varinate2:
Als quick and dirty Lösung könntest du auf dem Host einen Soft-Link mysqladmin->mariadb-admin erstellen oder eine eigene Version vom mk_mysql erstellen und überall “mysqladmin” durch “mariadb-admin” ersetzen (in der Annahme das mariadb-admin genau gleich funktioniert wie mysqladmin)

LG, Lars

1 Like

Den Gedanken hatte ich auch kurz, aber dann wieder verworfen, denn: mysqladmin existiert ja offensichtlich als Datei, denn sonst würde es sich ja nicht aufrufen lassen und könnte nicht meckern. Ich würde mich daher nicht trauen, die Datei zu löschen und durch einen Symlink zu ersetzen. Wer weiß, was das für Auswirkungen hat.

Aber das mk_mysql anzupassen, da hätte ich überhaupt keine Hemmungen.

Du könntest eine lokale Kopie von mk_mysql erstellen und am Anfang des Skriptes prüfen ob mariadb-admin oder mysqladmin verwendet werden soll:

if type mariadb-admin >/dev/null; then
    mysqladmin="mariadb-admin"
else
    mysqladmin="mysqladmin"
fi
if type mariadb >/dev/null; then
    mysql="mariadb"
else
    mysql="mysql"
fi
...
# gets optional socket as argument
do_query() {
    ...
    $mysqladmin --defaults-file...
    ...
    $mysql --defaults-file..
    ...

So funktioniert das Skript mit MySql, MariaDB alt und MariaDB neu.

3 Likes

Hallo Lars,

wo müsste ich diese Zeilen hinterlegen denn am Host sekbst in der Datei
/usr/lib/check_mk_agent/plugins/mk_mysql
hat es nichts bewirkt.

Auf dem System selbst existiert eine Verknüpfung mysqladmin zu mariadb-admin.

MfG Paul

Hi @Pablo78

möglicherweise kann mk_mysql auf diesem Server “mariadb-admin” nicht finden:

[user@host:~]$ type mariadb-admin
type: mariadb-admin: not found

In diesem Fall müsstest Du mal $PATH überprüfen.

Du kannst anstelle von “type mariadb-admin” auch einfach prüfen ob “/usr/bin/mariadb-admin” (oder wo immer mariadb-admin liegt) vorhanden ist:

if [ -x "/usr/bin/mariadb-admin" ]; then
    mysqladmin="/usr/bin/mariadb-admin"
else
    mysqladmin="mysqladmin"
fi
if [ -x "/usr/bin/mariadb" ]; then
    mysql="/usr/bin/mariadb"
else
    mysql="mysql"
fi

Gruss, Lars