| Author |
Message |
mdtestit
uses MSD regulary

Joined: 25 Feb 2009
Posts: 20

|
Posted:
2011-07-17, 15:59 Wie DB mysql beim Upgrade von MySQL 5.0 -> 5.5 übernehmen? |
  |
Hallo,
kann mir jd. bitte sagen, wie ich am besten die bereits gesetzten Werte der MYSQL-DB (User, DB, HOST usw.) aus einer MySQL-Server 5.0.9-Umgebung in eine MySQL-Server 5.5-Umgebung übernehme?
Offensichtlich hat sich u.a. die Passwort-Verschlüsselungsmethode geändert.
Momentan habe ich mich sozusagen selbst ausgeschlossen und komme nicht mehr als root auf den 5.5er.
Habe versucht, über die mysql-Console mein Passwort zurückzusetzen, aber das funktioniert leider auch nicht:
Quote: mysql> UPDATE mysql.user SET Password=PASSWORD('passwort') WHERE User='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 4 Changed: 0 Warnings: 0
Ausgelöst wurde dieser Schlamassel dadurch, dass ich auf einem neuen Server, auf dem MySQL-Server 5.5 läuft ein phpBB vom alten Server (auf dem MySQL 5.0.90) läuft, rübergezogen habe und dann feststellen musste, dass phpBB auf dem neuen Sever keinen DB-Connect hinbekommt, was ich mir nur durch andere USER, DB und HOST-Einträge erklären konnte.
EDIT:
Habe nun die USER-DB des 5.0.90-Servers auf den Server mit 5.5 kopiert, mysql_upgrade laufen lassen und dann den MySQL-Server 5.5 neu durchgestartet. Seitdem komme ich wieder rein.
Allerdings frage ich mich, ob mittels mysql-upgrade auch die DB-STRUKTUR der MYSQL-DB (USER, HOST etc.) angepasst wird auf die der 5.50? Denn da scheinen schon diverse Unterschiede zu bestehen.
Nette Grüße
mdtestit
|
|
  |
 |
Anzeigen
|
Posted:
Anzeigen |
 |
|
| |
 |
DSB
Developer


Age: 41
Joined: 30 Apr 2004
Posts: 16073
Location: Reichenberg bei Würzburg

|
Posted:
2011-07-17, 20:39 (No subject) |
  |
Hallo,
das Backup von phpbb hat damit nichts zu tun. Mit jedem anderen Skript hättest Du das selbe Problem gehabt.
Hier geht es ausschließlich um die Authentifizierung des MySQL-Users beim MySQL-Server.
Der neue Server läuft über das "neue" Authentifizierungsverfahren. Der alte Server war wohl noch auf die alte Methode eingestellt.
Durch das Neu-Setzen des Kennworts wurde es nun im neuen Format abgespeichert, so dass die Authentifizierung nun funktioniert. Solltest Du auf dem Server noch weitere MySQL-User haben, so solltest Du das für jeden Account wiederholen.
Siehe auch: http://dev.mysql.com/doc/refman/5.1/de/old-client.html
und http://dev.mysql.com/doc/refman/5.1/de/password-hashing.html
_________________ Gruß / Greetings, DSB
Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
|
|
    |
 |
mdtestit
uses MSD regulary

Joined: 25 Feb 2009
Posts: 20

|
Posted:
2011-07-18, 11:20 (No subject) |
  |
Hallo,
ich denke, dass Deine Anmerkungen zwar in die richtige Richtung gehen, aber letztlich doch nicht den Kern des bei mir aufgetretenen Problems treffen.
Das läßt sich bereits daran erkennen, dass - anders als von Dir vermutet - nun in der USER-DB des 5.50-Servers die Passwörter im gleichen Format vorliegen wie auf dem 5.0.90-Server.
Außerdem hat sich die Auth-Methode bereits mit der 4.1-MySQL-Version geändert und nicht erst zwischen 5.0.90 und 5.5.
Die in PHP auf den beiden Servern eingesetzten MySQL-Client-API-Versionen sehen wie folgt aus
Alter Server/ MySQL-Server 5.0.90 - PHP4 - MySQL-ClientAPI 5.0.90
Neuer Server/MySQL-Server 5.5 - PHP4(fastcgi)/PHP5 - MySQL-ClientAPI 5.5
Folglich läßt sich aus meiner Sicht das Ganze nicht so einfach erklären, da beide APIs >= 4.1 sind.
Auch läuft keiner der beiden MySQL-Server mit "--old-passwords".
Interessant ist folgender Hinweis:
Quote:
Die Breite der Password-Spalte wirkt sich auf die Art und Weise aus, wie der Server Passwort-Hashes während der Authentifizierung benutzt:
Wenn die Spalte kurz ist, wird die Authentifizierung mit kurzen Hashes verwendet.
Ist die Spalte hingegen lang, dann kann sie kurze wie auch lange Hashes aufnehmen, und der Server kann beide Formate verwenden:
Quelle:
http://dev.mysql.com/doc/refman/5.1/de/password-hashing.html
Denn die Spaltenbreite für die User-Passwörter beim 5.0.9 als auch beim 5.5-MySQL-Server ist jeweils 41 und nicht 16 (alt!). Die Passwörter selbst weisen aber nur die LÄNGE 16 auf.
Somit müsste gem. der o.a. Quelle eigentlich auf beiden Servern bereits die "neue" Authentifizierungsmethode genutzt werden.
Die Frage ist nun, was geschieht, wenn ich für einen User das alte Passwort NEU anlege? Theoretisch müsste es dann mit 41 Zeichen abgelegt werden und nach wie vor funktionieren, oder?
Nette Grüße
mdtestit
|
|
  |
 |
DSB
Developer


Age: 41
Joined: 30 Apr 2004
Posts: 16073
Location: Reichenberg bei Würzburg

|
Posted:
2011-07-18, 16:00 (No subject) |
  |
Ok, wenn der alte Server nicht mit --old-passwords lief, dann hat sich die Struktur der User-Tabelle geändert. Durch die Ausführung von mysql_upgrade wurde die Tabelle angepasst.
« mdtestit » wrote: Die Frage ist nun, was geschieht, wenn ich für einen User das alte Passwort NEU anlege? Theoretisch müsste es dann mit 41 Zeichen abgelegt werden und nach wie vor funktionieren, oder?
Ja. Deshalb schrieb ich Quote: Durch das Neu-Setzen des Kennworts wurde es nun im neuen Format abgespeichert, so dass die Authentifizierung nun funktioniert. Solltest Du auf dem Server noch weitere MySQL-User haben, so solltest Du das für jeden Account wiederholen.
_________________ Gruß / Greetings, DSB
Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
|
|
    |
 |
|
|
CrackerTracker © 2004 - 2012 CBACK.de
Powered by Orion based on phpBB
© 2001, 2002 phpBB Group
CBACK Orion Style based on FI Theme
All times are GMT + 2 Hours
phpBB SEO
|