Beiträge von pumi

    Nach einer manuellen Bearbeitung der mysql Benutzer direkt über mysql konnt das Upgrade auf Reihe 7 erfolgreich durchgeführt werden.

    Folgendes musst vor dem Upgrade durchgeführt werden:

    Code
    update user set authentication_string = password;

    Und dies musst nach dem Upgrade noch durchgeführt werden:

    Code
    set password for 'root'@'::1'=password('XXXXXXXXXXXX');
    delete from global_priv where User = 'builduser';
    delete from global_priv where User = '';
    flush privileges;

    Wei gesagt, wenn ich ein upgrade mache ohne voherige manuelle Änderungen, an der mysql.user Tabelle, funktioneirt es nicht - es fehlen Passwörter in der neuen mysql.global_priv Tabelle.

    Wenn ich vor dem Upgrade alle Passwörter in der mysql.user von der Spalte password in die Spalte authentication_string übertrage, sind nach dem Upgrade alle wichtigen Passwörter in der mysql.global_priv OK.

    Ausnahmen sind folgende User

    • 'root'@'::1' - das setzte ich nachträglich (dürfte ein default PW sein)
    • 'builduser'@'localhost' - hat kein Passwort und wissen wir nicht woher er kommt, bzw. ob er benötigt wird
    • ''@'localhost' - also ein Eintrag ohne Usernamen für localhost - diesen lösche ich.

    Für mich ist dieses Vorgehen jetzt OK - ich warte auf das nächste SE Update - wenn die Installation positiv verläuft, mach ich das upgrade am produktiv Server.

    Folgende Punkte kommen mir aber strange vor - sollten sich angesehen werden - ob wirklich alles korrekt ist.

    • unter mysql 10.2 ist bei einigen Usern kein authentication_string vorhanden - OBWOHL zwei solcher Benutzer kurz nacheinander über pdadmin angelgt wurden!
    • Wenn es OK ist, dass es User ohne authentication_strin gibt, sollte im Upgrade Script aber die Tabelle password anstelle von authentication_string verwendet werden - um den Fehler zu vermeiden der bei meinem Upgrade passiert - leere Passwörter.

    Nein es lag / liegt nirgends eine andere Version der mysql_privileges.pl am System.

    Hbs erneut versucht - ich denke das Problem liegt an der unvolständigen mysql.user im aktuellen System.

    Dort fehlen ja in der Spalte aufhentication_sting schon diese Passwörter - in der Spalte password sind sie aber vorhanden.

    Woran kann das liegen - es betrifft sogar 2 User die kuz nacheinander über das selbe Vorgehen angelegt wurden (im customer frontend) - einer hat einen authetication_string der andere nicht.

    Wenn ich vor dem Update die authentication_string's in der mysql.user korrigiere - sind sie auch nach dem Update korret gesetzt.

    Hab jetzt erneut ein sauberes Upgrade mittels "mysql_uprade.sh 9" durchgeführt.

    Leider habe ich jetzt bemerkt, dass das für den roundcubemail User und einen anderen mysqluser wieder kein Password gesetzt ist.

    Kann es sein, dass in diesem Upgradescript mysql_uprade.sh die Anpassung von Hr. Bradler nicht drin ist?

    OK, das bringt ja mal massig Licht ins Dunkel! Danke!

    In der mysql_user.yaml sind alle password strings richtig enthalten!

    Der root benutzer mit dem falschen Kennwort ist der für ipv6 - hab ich jetzt geändert.

    Dann werd ich jetzt nochmal meinen Testserver auf diese Weise upgraden und gehe davon aus, dass einem Upgrade meines Produktiv Servers nichts im Wege steht...

    Sumeragi - vielen Dank für deine Mühe!

    Gut zu wissen, dass diese "cannot move" Fehler kein Problem sein müssen.

    Auf welche Art hat du denn das Upgrade durchgeführt?

    Ich habe es jetzt noch mal mit dem "mysql_upgrade.sh 9" versucht.

    Wenn ich die "cannot move", "cannot access", "ln: failed" Fehler ignoriere, kommt es nach dem Starten der Dienste zu folgenden Fehlern:

    Wenn ich mich mit dem mysql Client "/usr/local/pd-admin2/bin/mysql" verbinde, benötige ich kein root Passwort und die tabelle mysql.user sieht auch nicht richtig aus!

    * bei root@localhost und root@127.0.0.1 unterscheiden sich die Passwörter

    * es gibt einen zusätzlichen User mariadb.sys ohne Password

    * ein weiterer neuer User builduser hat in password und authentication_string "invalid" stehen

    Mit dem User vadmin und dem roundcubmail User kann ich mich mit dem richtigen Passwort anmelden

    Auf die Webfrontends customer, administrator, roundcubemail und phpmyadmin kann ich mich aber verbinden.

    Ist das Upgrade jetzt OK und kann ich alle Fehler ignorieren oder laufe ich gefahr, dass beim nächsten se Update nichts funktioniert?

    Im mysql_user.yaml file sind jetzt alle Passwörter vorhanden.

    Nach dem Import stehen in der spalte password alle Passwörter drin, in der Spalte authentication_sting ist alles leer - weiß nicht ob das richtig ist.

    Leider funktioniert das Update noch immer nicht.

    Es scheiter nach wie vor beim Bereich cannot move....:

    Code
    /usr/local/pd-admin2/var/mysql/mysql/time_zone_transition_type.frm.pdu-*
    (2) MYSQLDATADIR = </home/mysql>
    mv: cannot move '/usr/local/pd-admin2/var/mysql/mysql/columns_priv.frm' to '/home/mysql/mysql/': No such file or directory

    Hab jetzt auch noch versucht das "manuelle" Update versucht. Vorher hab ich natürlich die Passwörter im mysql richtig gestellt (Spalte password und authentication_string gleich)

    Der Import der Privilegien (mysql_privileges.pl import_data) scheitert mit zugriff verweigert.

    Nach dem manuellen setzten des root Passworts klappt es.

    Die Ausgabe von "select host,user,password,authentication_string from mysql.user;" irritiert mich aber.

    In der Spalte authentication_string passen die Passwörter in der Spalte password steht abgesehen vom Benutzer root überall derselbe Wert - keiner aus dem Exportfile!

    Ich denke ich habe die Ursache für die "fehlenden" Passwörter im exportfile mysql_user.yaml gefunden.

    In der Tabelle mysql.user gibt es die Spalte password und die Spalte authentication_string.

    In der Spalte password sind alle Kennwörter vorhanden - in der Spalte authentication_string fehlen ein paar und offensichtlich werden beim Export die Kennwöter aus der Spalte authentication_string verwendet.

    Warum die Fehlen, verstehe ich nicht - es gibt sogar 2 Benutzer die von kurzem auf dieselbe Art (Customer - Datenbanken - Datenbankkonten - Neues Konto) eingerichtet wurden - bei einem ist die Spalte authentication_string leer beim andern steht derselbe Strin wie in der Spalte password - Komisch!

    Nachdem ich das korrigiert habe sind alle Kennwörter im Exportfile vorhanden.

    Leider scheitert das Upgrade über das Script "/mysql_upgrade.sh 9" trotzdem noch.

    Bis zum Bereich "Entferne einige .pdu-Dateien ..." scheint noch alles zu passen. Beim Verschieben von /usr/local/pd-admin2/var/mysql/mysql/columns_priv.frm nach /home/mysql/mysql/ kommt wieder No such file or directory...



    Ich hab doch am 06.03.2024 detailliert beschrieben, was ich wie gemacht habe und was passiert ist, inkl. Fehlermeldungen...

    Da müsste man sich weiter das Skript anschauen und die Zeile mit dem Dump identifizieren. Diese dann am besten einmal manuell ausführen und schauen.

    Ich hab das script ./mysql_privileges.pl export_data ausgeführt - auch damit fehlen einige Passwörter im mysql_user.yaml file.

    Ich wüsste jetzt nicht an welcher Stelle bei einem SE Update Passwörter angerührt würden. Ist das jetzt nur eine Vermutung oder wurde das getestet?

    Das hab ich getestet! Es scheint al würden die Kennwörter beim se-update wieder zurückgesetzt.

    Die Unterschiede sind mir auch Aufgefallen - leider finde ich nicht raus woran es liegt.

    In den Dumps, die in /home/mysqldump-for-upgrade/ gespeichert werden ist nichts von Usern oder Passwörtern zu finden.

    Ich denke die Berechtigungen werden nicht in diesen Dumps gespeichert sondern im File ~/mysql_user.yaml.

    Darin fehlen tatsächlich für ein paar User die Passwortstrings (u.a. auch für den Roundcube User) - warum auch immer?!


    Diese Fehler gehören alle zum Upgrade mit dem script mysql_upgrade.sh - wurde clean für diesen Beitrag gemacht.

    Ein "flush privileges;" wird wärend dem scriptdurchlauf gemacht - ist im Consolenaoutput zu sehen.


    Die letzte Feststellugn stimmt so leider nicht!

    Ich habe ja die Kennwörter manuell gesetzt - danach scheint alles zu funktionieren.

    Mein Problem ist es ja, dass beim nächsten se-update die Kennwörter wieder nicht stimmen.

    crazydad Vielen Dank für diesen konstruktiven Beitrag!

    Ich weiß nicht, wie du zu diesen Annahmen kommst, aber offensichtlich gibt es auch hier in diesem Forum Mitglieder, die anstelle objektiv Behilflich zu sein nur sinnlose Kommentare abgeben. Schade!

    Nur zur Info:

    Ich habe von längerer Zeit eine Neuinstallation mit der damals aktuellen REIHE 7 inkl. kompletter Datenmigration gemacht.

    Seither habe ich penibel so gut wie jedes erschienene Update (pd-admin wie auch seu) innerhalb weniger Tage nach Erscheinung gemacht.

    Fehlermeldungen hab nie welche missachtet oder ignoriert, geschweige etwas herumgepfuscht.

    Jetzt möchte ich ein Upgrade von Reihe 7 auf 9 machen - wobei es von Anfang an zu Problemen kam und meine händischen Rumpfuschereien nur zum Troubleshooting dienen...

    Also dein spontaner Spruch ist alles andere als Angebracht!

    Diese ganzen Fehler kommen ja bereits während dem se-update, also muss ich davon ausgehen, dass das Update nicht vollständig gemacht wurde.

    Und nach jedem se-update die Kennwörter neu setzten liegt bestimmt auch nicht im Sinne des Erfinders.

    Hab es jetzt probiert - beim roundcube User klappt es und das Roundcubemail scheint dann auch zu funktionieren.

    Beim vadmin bekomme ich den Fehler ERROR 1133 (28000): Can't find any matching row in the user table

    Sieht aus, als würde der Benutzer beim Update gelöscht!

    Nach dem manuellen Update von mysql nach der Anleitung funktioniert sogut wie nichts mehr.

    Die Ursache dafür ist der Verweigerte Zugriff auf mysql mit vadmin und roundcube User.

    Nach dem enu setzten der Kennwörter im msql für diese Benutzer funktioniert alles wieder.

    Wenn ich danach ein se-update mache bekomme ich oben genannte Fehler.

    Also wurden ja die Passwörter vor dem Update neu gesetzt.

    So ganz scheint mein Vorgehen noch nicht zu passen.

    Ich habe jetzt mal ein manuelles Upgrade von mysql Reihe 7 auf Reihe 9 mit der SE-Version 0438 durchgeführt.

    Mit dem zusätzlichen Setzen der Passwörter für vadmin und dem Roundcubemailuser schein auch alles zu funktionieren.

    Danach habe ich im File /usr/local/pd-admin2/UPDATE.INF/SERIES die Serie von 7 auf 9 geändert und ein Update der SE auf 0439 angestoßen.

    Leider funktioniert die nicht! Ursache dafür sind Fehlschlagende mysqlzugriffe mit vadmin und dem Roundcubemail User.

    ------

    DBI connect('database=vadmin;host=localhost;','vadmin',...) failed: Access denied for user 'vadmin'@'localhost' (using password: YES) at /opt/pdadmin/bin/httpd_vhosts.pl line 70

    can't connect! at /opt/pdadmin/bin/httpd_vhosts.pl line 70.

    ------

    ERROR: SQLSTATE[HY000] [1045] Access denied for user 'rcmXPJm6'@'localhost' (using password: YES)

    ERROR: Failed to connect to database

    ------

    ERROR 1045 (28000): Access denied for user 'vadmin'@'localhost' (using password: YES)

    Ich hoffe jemand kann mir sagen, woran das liegen kann.

    Welche Zugangsdaten werden beim Update verwendet?

    Vielen Dank, das hat mir schon mal sehr viel weitergeholfen!

    Ich denke ich bin dem Problem auf der Spur.

    Die manuelle Migration verursacht dasselbe Problem, ich konnt jetzt aber die Ursache finden.

    Offensichtlich werden die mysql Berechtigungen nicht richtig gesetzt.

    Wenn ich das Passwort für den vadmin und den roundcubemail-user händisch setzte laufen die Dienste wieder.

    Kann es sein, dass dies in den Skripten nicht oder falsch berücksichtigt ist?