Passwort änderung MySQL/MariaDB, Login nicht möglich

  • Hi,


    auch mit dem neuen Update ist die Passwort Änderung von MySQL/MariaDB Datenbanken nicht richtig möglich, Änderung erfolgt, aber Login funktioniert nicht. Wenn ich das Passwort dann per PHPMySQL ändere, ist der Login wieder möglich, nur wenn dies über die Liveconfig geändert wird, funktioniert dies nicht richtig.


    Betriebsystem: CentOS 7
    Server-Version: 10.4.14-MariaDB - MariaDB Server
    Liveconfig-Version: 2.10.1 (release)

  • Ich habe das eben mit LiveConfig 2.10.1 und MariaDB 10.4.14 unter CentOS 8 getestet - klappt einwandfrei.
    Datenbank in LiveConfig angelegt, Anmeldung mit mysql-Cient (via SSH) getestet, klappt.
    Datenbankpasswort via LiveConfig geändert, dann wieder via mysql-Client angemeldet, klappt auch.


    Handelt es sich bei Ihnen um eine Multi-Server-Installation, oder läuft der Datenbankserver lokal?
    Wie haben Sie die Anmeldung getestet? Nur via phpMyAdmin oder auch mal lokal (mit dem mysql-Client)?

  • Es handelt sich nicht um eine Mutli-Server-Installation, alle dienste laufen derzeit lokal.


    Getestet habe ich es über phpMyAdmin und lokal.


    Aktueller Test:
    Ich habe über die Liveconfig eine Datenbank angelegt und danach das Passwort geändert. Ab der änderung ist der Login nicht mehr möglich, als wenn das Passwort nicht richtig gespeichert wurde beim ändern.

  • Ich denke wir haben die Ursache gefunden. LiveConfig prüft über das Schema der Benutzerdatenbank, wie die Passwörter zu aktualisieren sind. Wenn z.B. MariaDB von 10.3 auf 10.4 aktualisiert wurde, dann kann das zu einer "falschen Entscheidung" führen.
    Ein Update ist gerade in Arbeit, ich gebe Bescheid sobald es bereit steht.

  • Hi,


    auch mit dem neuen Update ist die Passwort Änderung von MySQL/MariaDB Datenbanken nicht richtig möglich, Änderung erfolgt, aber Login funktioniert nicht. Wenn ich das Passwort dann per PHPMySQL ändere, ist der Login wieder möglich, nur wenn dies über die Liveconfig geändert wird, funktioniert dies nicht richtig.


    Betriebsystem: CentOS 7
    Server-Version: 10.4.14-MariaDB - MariaDB Server
    Liveconfig-Version: 2.10.1 (release)


    Habe leider nun genau das gleiche Problem, seit dem Upgrade von Debian 10 auf Debian 11. Liveconfig Version ist die aktuelle 2.13.0
    Hatte das auch schon mal einer von auch nach einem Upgrade von Debian 10 auf Debian 11?

  • Ja ist mariadb Ver 15.1 Distrib 10.5.12-MariaDB.
    Also die Standard Version von MariaDB unter Debian 11.


    Wegen der Fehlermeldungen werde ich gleich mal im Log von Liveconfig schauen.

  • Fehler in der Liveconfig Logfile:


    [2022/01/21 15:52:57.525050] [2809|2810] Prepared statements invalidated - trying to recover...
    [2022/01/21 15:53:09.538462] [2809|2810] (last message repeated 6 times)
    [2022/01/21 15:53:09.538497] [2809|2810] Error while updating database: Re-preparation of MySQL statement failed (7 attempts, waited 63 seconds)

  • Starten Sie LiveConfig bitte mal neu. Melden Sie sich dann als "admin" an und gehen auf "Serververwaltung" -> "Datenbanken". Wird dort "Status: verbunden" angezeigt?


    Ist evtl. beim Upgrade irgendwas schief gelaufen? Führen Sie ggf. mal das Programm "mysql_upgrade" aus (als root)

  • Wir können das leider nicht reproduzieren (Debian 11, MariaDB 10.5.12-MariaDB-0+deb11u1)


    LiveConfig prüft bei der Passwortänderung lediglich, ob die MySQL/MariaDB-Version <= 5.7.6 ist.
    Wenn nicht, dann wird zur Änderung der Befehl "SET PASSWORD FOR 'user'@'localhost' = PASSWORD('StReNgGeHeIm');" ausgeführt.


    Die Versionsnummer wird wiederum aus dem Befehl "SHOW VARIABLES" ausgelesen (Variable "version"). Standardmäßig geht LiveConfig aber davon aus, dass MySQL/MariaDB > 5.7.6 läuft.


    Die nächsten Schritte wären daher:
    - führen Sie mal manuell (als root-Benutzer in MariaDB) den o.g. "SET PASSWORD FOR..."-Befehl aus
    - haben Sie im LiveConfig externen Datenbankzugriff konfiguriert? (Serververwaltung -> Datenbanken) Wenn ja, dann prüfen Sie bitte mal ob auch folgender SQL ausgeführt werden kann: SELECT Password FROM user WHERE User='user' AND Host='localhost'

  • "SET PASSWORD FOR 'user'@'localhost' = PASSWORD('StReNgGeHeIm');"
    funktioniert als root-Benutzer einwandfrei zum ändern des Passworts.
    Ebenfalls kann man natürlich ohne Probleme das Passwort auch mit PhpMyAdmin ändern.


    Externer Datenbankenzugriff ist nicht aktiviert.
    Auch das deaktivieren von Single Sign-On unter "Serververwaltung" in Liveconfig ändert nichts.


    Mysql (MariaDB) funktioniert über die Shell einwandfrei, als root genauso wie als user.


    liveconfig --diag erkennt die MariaDB richtig:
    ---
    Checking for database server software:
    - Found 'mysql' database server
    Version: '10.5.12'
    Package version: '1:10.5.12-0+deb11u1'
    ---


    Wie bereits geschrieben funktioniert über Liveconfig auch das neue erstellen sowie auch das löschen einer Datenbank ohne Fehler und Probleme. Nur leider das ändern des Passworts einer Datenbank funktioniert nicht über Liveconfig.
    Die Fehlermeldung in der liveconfig.log ist bei jedem Versuch das Passwort einer Datenbank zu ändern immer die gleiche:


    [2022/02/13 16:00:01.559982] [702313|702318] Prepared statements invalidated - trying to recover...
    [2022/02/13 16:00:13.572035] [702313|702318] (last message repeated 6 times)
    [2022/02/13 16:00:13.572086] [702313|702318] Error while updating database: Re-preparation of MySQL statement failed (7 attempts, waited 63 seconds)

  • [2022/02/13 16:00:01.559982] [702313|702318] Prepared statements invalidated - trying to recover...
    [2022/02/13 16:00:13.572035] [702313|702318] (last message repeated 6 times)
    [2022/02/13 16:00:13.572086] [702313|702318] Error while updating database: Re-preparation of MySQL statement failed (7 attempts, waited 63 seconds)


    Diese Fehlermeldung bedeutet, dass LiveConfig bei der Ausführung eines SQL-Befehls den Fehlercode 1615 von MySQL/MariaDB erhalten hat. Normalerweise™ tritt dieser Fehler nur dann auf, wenn zwischenzeitlich die Verbindung zum MySQL-Server unterbrochen wurde und deshalb die Prepared Statements nicht mehr in dessen Cache sind. Allerdings kommen da zwei weitere Bugs ins Spiel (#41119, #42041), weshalb LiveConfig sicherheitshalber mehrfach versucht, die Statements neu anzulegen. Nach sieben erfolglosen Versuchen gibt LiveConfig (bzw. dessen Datenbanktreiber) dann auf.


    Aus den Kommentaren zum MySQL-Bug #42041 kann man entnehmen, dass das wohl häufiger mal auftreten kann wenn der Server unter sehr hoher Last steht, oder die User-Tabellen gesperrt sind. Da eine "manuelle" Änderung über die MySQL-Konsole aber offenbar klappt, kann man das vermutlich ausschließen.


    Laut einer Antwort bei StackOverflow könnte es helfen, den table_definition_cache zu vergrößern. Versuchen Sie das bitte einmal.


    Viele Grüße


    -Klaus Keppler


    [Nachtrag]
    Im selben StackOverflow-Beitrag findet sich weiter unten ein Hinweis, dass Prepared Statements mit Views Probleme machen könnten. Die neueren MySQL/MariaDB-Versionen setzen bei der Benutzerverwaltung nun auch auf View, da könnte es also einen Zusammenhang geben.
    Wir werden mal prüfen, ob wir Passwortänderungen ohne Prepared Statement an die Datenbank übergeben können (wenngleich das ein Sicherheitsrisiko ist...).

  • Das Vergrößern des table_definition_cache hat tatsächlich geholfen. Der Fehler tritt nun nicht mehr auf und das Ändern des Passwortes einer Datenbank über Liveconfig funktioniert wieder einwandfrei.


    Vielen Dank.


    Das hat bei mir auch geholfen

  • Das Vergrößern des table_definition_cache hat tatsächlich geholfen. Der Fehler tritt nun nicht mehr auf und das Ändern des Passwortes einer Datenbank über Liveconfig funktioniert wieder einwandfrei.


    Vielen Dank.


    Um Wieviel von was hast du die table_definition_cache erhöht?
    Freue mich auf Infos

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!