Spaß mit phpMyAdmin

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Benutzeravatar
pixewakb
User
Beiträge: 1119
Registriert: Sonntag 24. April 2011, 19:43

Sonntag 15. Juli 2018, 12:42

Ich habe auf einem alten Rechner, der gerade in seinen letzten Zügen ist, eine MySQL-Datenbank mit schlappen 342 MB (Größe der sql-dump-Datei) und versuche das jetzt nach PhpMyAdmin zu bekommen, um eine neue MediaWiki-Installation ans Laufen zu bekommen. Es erweist sich als große Katastrophe, weil die Daten nicht korrekt geladen werden und der Upload, auch wenn man die php-Variablen hochsetzt, nicht klappen will. :cry:

Momentan, und das ist mein eigentliches Problem, kann ich nicht sagen, ob die sql-Sicherung (ein mysql-dump) wenigstens korrekt ist, weil mir dann auch regelmäßig Fehler angezeigt werden, die darauf hindeuten, dass Tabellen, für die im dump Anweisungen stehen, nicht angelegt wurden - wohl weil während des Imports irgendwo abgebrochen wurde.

Ich überlege mal statt Richtung sql dann mal Richtung csv ein Backup zu machen, so dass ich wenigstens sehen kann, was ich da schönes in den Dateien stehen habe - bei dem sql-file ist das eher raten :(
Benutzeravatar
__blackjack__
User
Beiträge: 1408
Registriert: Samstag 2. Juni 2018, 10:21

Sonntag 15. Juli 2018, 13:08

@pixewakb: Mit CSV kannst Du ja nur ein Backup der Daten selbst machen, die Tabellendeklarationen sind da ja nicht drin.

Warum willst Du das überhaupt über phpMyAdmin einspielen? So komplette, riesige DBs spielt man besser über die Kommandozeile ein. Einen SQL-Dump kann man ja üblicherweise direkt in das CLI-Programm des DBMS rein pipen, und die (Fehler)Ausgaben dann auch in eine Datei umleiten, damit man sich das danach alles in Ruhe anschauen kann.

Code: Alles auswählen

    **** COMMODORE 64 BASIC V2 ****
 64K RAM SYSTEM  38911 BASIC BYTES FREE
   CYBERPUNX RETRO REPLAY 64KB - 3.8P
READY.
█
Benutzeravatar
pixewakb
User
Beiträge: 1119
Registriert: Sonntag 24. April 2011, 19:43

Sonntag 15. Juli 2018, 23:46

Danke für den Hinweis, darauf bin ich zunächst gar nicht gekommen! Das macht Sinn, weil ich damit um die Einschränkungen von php herumkomme. Das ist normalerweise nicht mein Bereich, d. h. aktuell ist das ziemlich Neuland für mich.
PS C:\Users\[...]\Desktop> mysql -u root -p "" < backup.sql
In Zeile:1 Zeichen:21
+ mysql -u root -p "" < backup.sql
+ ~
Der Operator "<" ist für zukünftige Versionen reserviert.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : RedirectionNotSupported
Mache ich hier etwas falsch?

Ich habe nur noch begrenzten Zugriff auf den alten Rechner (entweder Lüfter oder wahrscheinlicher Festplatte hat ein Problem), das eigentlich wichtige an der MediaWiki-Installation sind die Daten - nicht die Versionsgeschichte...

Mit den Informationen im Netz (z. B. https://superuser.com/questions/1055797 ... powershell) komme ich noch nicht weiter:
PS C:\Users\[...]\Desktop> get-content 'C:\Users\[...]\Desktop\backup.sql' | &'D:\system\xampp\mysql\bin\mysql.exe' -u root -password="" backup
Fehler beim Ausführen des Programms "mysql.exe": Eine Ausnahme vom Typ
"System.OutOfMemoryException" wurde ausgelöst.In Zeile:1 Zeichen:49
+ ... backup.sql' | &'D:\system\xampp\mysql\bin\mysql.exe' -u root -password= ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
In Zeile:1 Zeichen:1
+ get-content 'C:\Users\[...]\Desktop\backup.sql' | &'D:\system\xampp\mys ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (:) [], ApplicationFailedException
+ FullyQualifiedErrorId : NativeCommandFailed


PS C:\Users\[...]\Desktop> get-content 'C:\Users\[...]\Desktop\backup.sql' | &'D:\system\xampp\mysql\bin\mysql.exe' -u root backup
Fehler beim Ausführen des Programms "mysql.exe": Eine Ausnahme vom Typ "System.OutOfMemoryException" wurde ausgelöst.In
Zeile:1 Zeichen:49
+ ... sktop\backup.sql' | &'D:\system\xampp\mysql\bin\mysql.exe' -u root backup
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
In Zeile:1 Zeichen:1
+ get-content 'C:\Users\[...]\Desktop\backup.sql' | &'D:\system\xampp\mys ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (:) [], ApplicationFailedException
+ FullyQualifiedErrorId : NativeCommandFailed


PS C:\Users\[...]\Desktop>
Benutzeravatar
pixewakb
User
Beiträge: 1119
Registriert: Sonntag 24. April 2011, 19:43

Montag 16. Juli 2018, 00:00

Mittlerweile bin ich da angekommen: https://stackoverflow.com/questions/542 ... mmand-line

Für mich ist es schwierig, weil offenbar das Zeichen "<" zu Problemen führt :(

<s>Und in der MS Eingabeaufforderung komme ich nicht aufs Laufwerk D:, wo meine XAMPP-Installation liegt. Langsam, aber sicher ist das nicht mehr schön. :oops:</s>

Ich komme voran und lasse es jetzt gerade laufen. Wechsel nach D: in der Eingabeaufforderung durch Eingabe von D: und nicht (!) cd D:
Benutzeravatar
__blackjack__
User
Beiträge: 1408
Registriert: Samstag 2. Juni 2018, 10:21

Montag 16. Juli 2018, 00:22

PowerShell kann keine Datei in ein Programm umleiten‽ Krass.

`Get-Content` liest die gesamte Datei in den Speicher. Ist also im günstigsten Fall ungünstig und im ungünstigen Fall ist einfach nicht genug Speicher vorhanden.

Stackoverflow sagt dazu: ``mysql -uroot -pYourPassword -e "source C:\temp\filename.SQL"``

Edit: Auf Superuser gibt es noch eine Alternative: ``Start-Process "C:\Program Files\PostgreSQL\<version>\bin\psql.exe" '--username=... db_name' -RedirectStandardInput backup.sql -NoNewWindow -Wait``

Das Beispiel ist mit dem CLI-Client für PostgreSQL, aber das ist ja übertragbar. Das Tänzchen muss man also machen wenn man eine Datei in die Standardeingabe eines Programms umleiten möchte. Ich hatte PowerShell auf meiner Todo-Liste stehen, weil's das ja auch für Linux gibt. Habe ich da gleich mal gestrichen. :evil:

Code: Alles auswählen

    **** COMMODORE 64 BASIC V2 ****
 64K RAM SYSTEM  38911 BASIC BYTES FREE
   CYBERPUNX RETRO REPLAY 64KB - 3.8P
READY.
█
Benutzeravatar
pixewakb
User
Beiträge: 1119
Registriert: Sonntag 24. April 2011, 19:43

Montag 16. Juli 2018, 00:32

Ich habe es gelöst, indem ich in das XAMPP-Verzeichnis und dort in das MySQL-Verzeichnis gewechselt bin und dann folgenden Befehl ausgeführt habe (also die Befehle sahen dort wie folgt aus...):

D:\system\xampp\mysql\bin>
D:\system\xampp\mysql\bin>mysql -u root -p scer < C:\users\[...]\Desktop\backup.sql
Enter password:

Das hat etwas gedauert, aber die Datenbank wurde so importiert. @BlackJack: Danke für den Hinweis, ich wäre da nicht weiter gekommen. Ganz lieben Dank!

Für mich geht es jetzt weiter, weil sich wahrscheinlich zwischen der installierten MediaWiki-Installation, die die Datenbank erzeugt hat und der aktuellen MW-Version was getan hat, d. h. die Reise ist noch nicht vorbei :lol:
Benutzeravatar
pixewakb
User
Beiträge: 1119
Registriert: Sonntag 24. April 2011, 19:43

Montag 16. Juli 2018, 00:36

__blackjack__ hat geschrieben:
Montag 16. Juli 2018, 00:22
PowerShell kann keine Datei in ein Programm umleiten‽ Krass. [...]
Sorry, ich habe deinen Beitrag erst jetzt gelesen. Gefühlt erhalte ich aus dem Forum keine E-Mail-Benachrichtigung mehr über neue Antworten. Ich habe einen anderen Workaround mit der alten MS-Eingabeaufforderung gefunden (https://stackoverflow.com/questions/176 ... e-in-mysql#_=_; Beitrag von Tanmay Patel), damit konnte ich es lösen.

Datenbanken sind bislang so gar nicht meins, d. h. da stehe ich ziemlich ahnungslos davor.
Benutzeravatar
pixewakb
User
Beiträge: 1119
Registriert: Sonntag 24. April 2011, 19:43

Montag 16. Juli 2018, 00:55

Ich glaube ich habe es geschafft, d. h. die Daten sind jetzt erst einmal im Wiki angekommen und d. h. ich kann darauf zugreifen. Der Rest ist hoffentlich Kosmetik...
Antworten