Das Passwort muss OHNE Leerzeichen direkt nach dem Parameter -p geschrieben werden. Dann geht es auch.
mysqldump per Cronjob bringt Fehler
- Milchmann
- Unerledigt
-
-
Nein geht nicht, eventuell kann es daran liegen als ich das Passwort generieren habe lassen als erstes Zeichen ein $ ist
-
Daran liegt es. Dollarzeichen im Passwort müssen mit einem Backslash maskiert werden.
Also:
\$
-
Der Backslash vor dem $ funktioniert, Danke. Doch leider habe ich immer noch das Problem mit den Dateinamen. Diese werde zufällig generiert wenn ich "BackupMySQL.sh" ausführe
Das ist jetzt speziell... habe mal in der Console das Verzeichnis mit ls -l anzeigen lassen.
Da werden die Dateien richtig angezeigt, aber am Ende des Dateinamens wird noch ein zusätzliches ? angezeigt
Habe den Grund nun herausgefunden, da ich meine BackupMySQL.sh Datei mit dem Notepad++ editiert habe, wurden die Zeilenenden mit CRLF generiert
Shell Scripting unwanted '?' character at the end of file nameI get an unwanted '?' at the end of my file name while doing this: emplid=$(grep -a "Student ID" "$i".txt | sed 's/(Student ID: //g' | sed 's/)Tj//g' )…stackoverflow.comUm diese zu ersetzten gibt es eine Anleitung unter dem folenden Link.
Nach ich es korrigiert habe, werden die Dateien nun korrekt erzeugt und auch wie gewünscht im Windows-Explorer korrekt angezeigt.
-
ein einfaches dos2unix reicht in den meisten Fällen
Ich weiß aber nicht, ob das bei QNAP verfügbar ist.
NBotepad++ macht das übrigens normalerweise richtig, bzw. man kann richtig speichern.
-
Passwort ist das root-Passwort Deiner Mysql-Instanz. Sicherungsdatei.sql ist die komplette Sicherungsdatei (in der alle Datenbanken enthalten sind).
Wenn Du nur die Nextcloud-DB zurückspielen möchtest, sieht der Befehl wie folgt aus
mysql -u root -pPASSWORT DROP DATABASE nextcloud
mysql -u root -pPASSWORT CREATE DATABASE nextcloud
mysql -u root -pPASSWORT nextcloud <SICHERUNGSDATEI_NEXTCLOUD.SQL
Nun ist der Fall eingetreten , dass ich die Datenbank zurück spielen muss. Aber leider scheitere ich schon am 2. Punkt.
Da ruft es die Hilfe von mysql auf. Ich weiß hier nicht , was falsch läuft.
Was mache ich falsch?
Danke BERT
-
Normalerweise schließt man mysql Befehle mit ; ab?
Gruss
Moment, Du bist auf der Konsole, nicht im mysql?
Wie lautet denn die Fehlermeldung?
-
Ja ich bin in der Konsole. Keine Fehlermeldung nur Aufruf der Hilfe
-
Melde Dich bitte mal an Mysql mit folgendem Befehl an:
/mnt/ext/opt/mariadb/bin/mysql -u root -pPASSWORT
Dann mal bitte mit folgendem Befehl die Datenbanken anzeigen lassen:
SHOW DATABASES;
Falls die Nextcloud-DB noch da ist, diese mit
DROP DATABASE nextcloud; löschen.
Dann mit
CREATE DATABASE nextcloud;
neu anlegen.
Nun mit
exit
die mysql-DB beenden.
Jetzt mit
/mnt/ext/opt/mariadb/bin/mysql -u root -pPASSWORT nextcloud <nextcloud.sql die Datenbank neu einlesen. Und wichtig: Unbedingt auch die Datenbank "mysql" neu einlesen, damit die Rechte richtig gesetzt werden:
/mnt/ext/opt/mariadb/bin/mysql -u root -pPASSWORT mysql <mysql.sql
Danach mysql über die Oberfläche beenden und neu starten, damit die Rechte übernommen werden.
-
Ich bin jetzt weiter. Mit
bin ich in
Aber wenn ich dann die SQL zurückspielen will. kommt folgender Fehler:
CodeMariaDB [(none)]> Nextcloud < /share/Web/Nextcloud.sql; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'Nextcloud < /share/Web/Nextcloud.sql' at line 1
Was kann ich tun?
Danke
Bert
-
Lies mal bitte genau, was ich geschrieben habe!
Du musst erst mit exit aus der Mysql-Anwendung heraus. Erst dann kannst Du den Import der SQL-Datei, wie von mir beschrieben, starten.
-
Mod: Unnötiges Volltext-/Direktzitat entfernt! Forenregeln beachten und Die Zitat Funktion des Forums richtig nutzen
Ja ich hatte das schon abgeschickt, bevor ich deins gelesen habe.
Danke dir. Klappt jetzt
Letzte Frage, also sollte ich die mysql Datenbank auch täglich sichern? Das hatte ich aktuell nicht auf dem Schirm.
Wenn ich die mysql aus der gesamtsicherung nur haben will, wie lautet dann der Befehl, dass ich diese nur wiederherstelle?
Bert
-
Auf jeden Fall solltest Du sie immer dann sichern, wenn Du neue Datenbanken anlegst oder Nutzerrechte änderst. Ich sichere sie in meinem Script täglich mit weg, ist nur sehr klein, aber ungeheuer wichtig!
Aus der Gesamtsicherung bekommst Du sie nur mit einem Texteditor heraus. Besser ist, die Datenbanken einzeln zu sichern, das macht die Wiederherstellung deutlich einfacher.
-
Du musst erst mit exit aus der Mysql-Anwendung heraus.
Nicht nötig. Man kann auch mit
den Dump in Mysql direkt laden. (<Dateiname> durch den tatsächlichen Namen ersetzen, und das Semikolon am Ende ist Pflicht.)
Hinweis:
Da es sich beim Dump um eine Ascii-Datei mit ausführbaren SQL-Befehlen handelt, ist es auch problemlos möglich, nur Teile zurückzuspielen oder die Daten in eine andere Datenbank einspielen, z. B. mit Copy&Paste oder indem man die Dump-Datei (bzw. besser eine Kopie davon) erst mit einem Texteditor ändert.
Wenn man so etwas macht, sollte man aber wissen, was man macht. Bei liebevoll selbst erstellten Datenbanken geht das gut. Bei Datenbanken, die von einer nur genutzten Software erstellt werden, würde ich immer die ganze Datenbank zurückspielen.