Benutzerdefinierte Suche

Problem mit zwei unterschiedlichen MySQL-Versionen

  1. Der_Jan

    Der_Jan Thread StarterMacUser Mitglied

    Mitglied seit:
    06.01.2004
    Beiträge:
    609
    Zustimmungen:
    7
    Guten Morgen,
    auf zwei Webservern liegt jeweils eine Datentabelle mit identischer Struktur. Über ein CMS sollen die Datensätze synchron bearbeitet werden.

    Im PHP-Skript stelle ich zunächst eine Verbindung mit dem Server 1 her und bearbeite den Datensatz. Auf Server 1 läuft die MySQL-Version 4.0.27 und der Datensatz wird wie gewünscht abgespeichert.

    Anschließend soll eine weitere Verbindung zum Server 2 (MySQL-Version 4.1.10) aufgebaut werden, funktioniert aber mit dem Hinweis

    Warning: mysql_connect() [function.mysql-connect]: Client does not support authentication protocol requested by server; consider upgrading MySQL client in

    nicht. Wenn ich das richtig verstehe, liegt es an den unterschiedlichen Versionen der MySQL. Nun bin ich auf beiden Servern nur "Untermieter", habe keine Möglichkeit, die MySQL-Versionen anzugleichen. Gibt es dennoch einen Trick, wie ich das Skript dennoch zum Laufen bringen kann? :confused:

    Der_Jan
     
    Der_Jan, 06.02.2007
  2. Fuzzelabbe

    FuzzelabbeMacUser Mitglied

    Mitglied seit:
    24.02.2005
    Beiträge:
    246
    Zustimmungen:
    13
    Moin Jan,

    wie kommst du darauf, dass es am Versionsunterschied liegt?

    Die Meldung meckert über ein fehlerhaftes Protokoll. Üblicherweise kann man auch keine remote Verbindung zu einer mySQL DB aufbauen, das klemmen die Hoster ab, mit gutem Grund.

    Jedes Skriptkiddie könnte BruteForce somit jeden mySQL Server angreifen...

    So kann es trivial funktionieren:

    PHP-Skript A auf Server A generiert eine PHP-Datei mit den DB-Abfragen. Diese Datei wird auf Server B übertragen und von PHP-Skript B ausgeführt. Das Ergebnis dieser Abfrage geht den selben Weg zurück.


    ciao
    Fuzzel.
     
    Fuzzelabbe, 06.02.2007
  3. Der_Jan

    Der_Jan Thread StarterMacUser Mitglied

    Mitglied seit:
    06.01.2004
    Beiträge:
    609
    Zustimmungen:
    7
    Hey Fuzzelabbe,

    Naja, das steht halt consider upgrading MySQL...


    Ich habe das ganze vorher von meinem lokalen Server zu Server 2 versucht, dass hat soweit geklappt.

    Keine Möglichkeit, über zwei von einem Skript nacheinander hergestellte Verbindungen das zu realisieren? :(
     
    Der_Jan, 06.02.2007
  4. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    von 4.1.x auf 4.2.x hat sich das Anmeldeprozedere /(Paßwortverschlüsselung) geändert. Von daher könnte es in der Tat schon problematisch werden.

    Problem nummer 2 ist dabei die Datenkonsistenz, denn eigentlich gehört so eine Replikation in Transactions gepackt. Wie ist denn da das zeitverhalten? Bist Du sicher das es da keine Irrtümer/Fehlläufer gibt?

    Würde nicht eine nächtliche Synchronisation vielleicht ausreichen? Oder ein regelmäßiges Syncen all n Stunden ( mit Sperrung der Frontends in der Zeit!?)

    Gruß wegus
     
    wegus, 06.02.2007
  5. Darkstar

    DarkstarMacUser Mitglied

    Mitglied seit:
    17.07.2004
    Beiträge:
    160
    Zustimmungen:
    0
    Wie Wegus schon sagte, liegt das in der Tat an den beiden MySQL Versionen:
    Wenn Du in gleicher Art und Weise auf die Datenbank zugreifen möchtest, solltst Du Dir mal das hier ansehen:

    http://dev.mysql.com/doc/refman/4.1/en/old-client.html

    Danach kommst Du auch wie gewohnt auf den MySQL Server mit der neueren Version wieder drauf.
     
    Darkstar, 06.02.2007
  6. Fuzzelabbe

    FuzzelabbeMacUser Mitglied

    Mitglied seit:
    24.02.2005
    Beiträge:
    246
    Zustimmungen:
    13
    Moin Leute,

    Ihr stellt mein Weltbild auf den Kopf... das PHP-Skript greift doch nicht über den Client der lokalen mySQL-DB auf die entfernte DB zu?

    Der Client sollte doch keine Rolle spielen, wenn über API oder Konnektor auf die DB zugegriffen wird !?


    Ciao
    Fuzzel
     
    Fuzzelabbe, 06.02.2007
  7. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    Wie sonst willst Du das machen Fuzzelabbe?
    Es braucht ja eine Client-Library um das Kommunikationsprotokoll zu beherrschen. Eine passende Library wird daher auch immer dynamisch/Statisch hinzugeladen. Bei Postgres/MySQL fällt das eher selten auf, weil der Client im Lieferumfang von PHP enthalten ist.
     
    wegus, 06.02.2007
  8. mr660

    mr660MacUser Mitglied

    Mitglied seit:
    28.08.2006
    Beiträge:
    294
    Zustimmungen:
    22
    also, fuer replikation wuerde ich tatsaechlich die "eingebaute" replikation nutzen, die mysql mitbringt - vorausgesetzt du kannst/darst ueber's netzt auf die beidem mysql server zugreifen. bei den grossen hostern ist das ja teilweise nicht moeglich...

    zum problem: neuere mysql-versionen bringen eine neue (bessere) verschluesselung der passwoerter mit. dies wird aber nicht von den "älteren" mysql-libraries (die werden von php eingebunden) unterstützt. in diesem fall hilft eventuell, die "alte" passwort-methode zu nutzen:

    old_password('123456')

    wenn du zugriff auf die mysql-db (hier genau das datenbank-schema datenbank mysql mit den ganzen system-einstellungen) hast, kannst du z.b. das passwort aendern. eventuell deinen hoster fragen, ob die was "aendern" koennen/wollen.

    hier noch der wichtige hinweis: lies die mysql-doku (www.mysql.com)
     
    mr660, 06.02.2007
Die Seite wird geladen...
Ähnliche Themen - Problem zwei unterschiedlichen
  1. simusch
    Antworten:
    2
    Aufrufe:
    188
    simusch
    04.05.2017
  2. melesch
    Antworten:
    3
    Aufrufe:
    977
    falkgottschalk
    19.05.2014
  3. flohaase
    Antworten:
    2
    Aufrufe:
    967
    flohaase
    26.09.2013
  4. kraftwerk
    Antworten:
    9
    Aufrufe:
    1.722
  5. heinetz
    Antworten:
    15
    Aufrufe:
    2.194
    heinetz
    23.06.2013