Uncaught mysqli_sql_exception: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation

  • Hallo zusammen,

    ich habe bei einem Kunden versucht, ein Update von 9.1.2 auf 9.1.6 (noch unter PHP 8.1) zu machen. Leider blieb dieses beim Punkt "Datenbank aktualisieren" hängen. Selbst Klicks auf "Aktualisieren" brachten nichts. Im Fehlerprotokoll fand ich folgenden Eintrag. Was will dieser mir sagen?

    Code
    Uncaught mysqli_sql_exception: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation in /some/webspace/webEdition/we/classes/database/we_database_mysqli.class.php:54
    Stack trace:
    #0 /some/webspace/webEdition/we/classes/database/we_database_mysqli.class.php(54): mysqli->query('FLUSH TABLES', 0)
    #1 /some/webspace/webEdition/we/classes/database/we_database_base.class.php(567): DB_WE->_query('FLUSH TABLES')
    #2 /some/webspace/webEdition/we/classes/base/we_base_errorHandler.class.php(335): we_database_base->query('INSERT INTO tbl...')
    #3 /some/webspace/webEdition/we/classes/base/we_base_errorHandler.class.php(209): we_base_errorHandler::log(-3, 'Access denied; ...', '/some/websp...', 54, true, '#0 /some/websp...')
    #4 /some/webspace/webEdition/we/classes/base/we_base_errorHandler.class.php(561): we_base_errorHandler::showDevice(-3, 'Access denied; ...', '/some/websp...', 54, true, '#0 /some/websp...')
    #5 [internal function]: we_base_errorHandler::exceptionHandler(Object(mysqli_sql_exception))
    #6 {main}
      thrown

    Vielen Dank im Voraus für eure Hilfe.

    Michael


    P.S. Vom Server-Admin kam dazu übrigens folgende Antwort: "Das Privileg RELOAD ist eine administrative Funktion und wird für normale Datenbankzugriffe nicht benötigt."

    Edited once, last by migrosch (January 28, 2026 at 4:47 PM).

  • Vielen Dank für den Tipp.

    Leider kam folgende (unbefriedigende) Antwort:

    Quote

    [...] handelt es sich bei FLUSH_TABLES um eine globale administrative Funktion, die zum RELOAD privelege gehört, diese beeinflussen nicht nur auf die Datenbank sondern die ganze Instanz, solche Rechte vergeben wir nicht, da es nicht möglich ist einzig das Recht für FLUSH_TABLES zuzuweisen

    Seltsamerweise haben die früheren Updates ohne Probleme funktioniert.

    Hat sonst noch jemand eine Idee, was wir da machen könnten um das Problem zu lösen?

  • Ja, du kannst für das Update PHP 8.0 nutzen.

    Das Flush ist das schon lange drin und soll dafür sorgen das Umbauten an den Tabellen sicher auf die Platte geschrieben werden. Das braucht es bei einigen Synchronisationen.

    Ab PHP 8.1 wirft mysqli Exceptions - das war zu Zeiten von WE 9.1.x natürlich noch nicht bekannt....


    Unsere aktuellen Versionen fangen den Fehler und machen unvermindert weiter.

  • Was du machen könntest, wäre ein Dump ziehen, das Update lokal machen und dann die neue Version wieder hochladen.

    Ja, das war dann auch mein Weg.

    Ja, du kannst für das Update PHP 8.0 nutzen.

    Das Flush ist das schon lange drin und soll dafür sorgen das Umbauten an den Tabellen sicher auf die Platte geschrieben werden. Das braucht es bei einigen Synchronisationen.

    Ab PHP 8.1 wirft mysqli Exceptions - das war zu Zeiten von WE 9.1.x natürlich noch nicht bekannt....


    Unsere aktuellen Versionen fangen den Fehler und machen unvermindert weiter.

    Danke für den Hinweis.

Participate now!

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