Fehler #1146 nach upload

fpvmax

New Member
Hallo.
Ich sichere immer schön meine Daten vom Server. Dabei sind auch die Mysql Daten in /var/lib/mysql.
Nun wollte ich die Datenbanken auf einem anderen Server einspielen. Ich sehe zwar die Tabellen in PHPMYADMIN, kann aber die DatenSätze nicht bearbeiten. Es kommt der Fehler #1146. Getestet auf einem Xampp und einem Ubuntu Server.
Wo liegt hier der Fehler bzw was mache ich falsch?
 
Einfache Lösung: einen sauberen dump machen, mit dem dafür vorgesehen Tool.
Dann importierst Du die Datenbank entsprechend auf dem Zielsystem.

Die Dokumentation findest Du hier:
https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html

Ansonsten gibt es auch eine nicht empfohlene Lösung, um das so zu machen, wie Du möchtest.

https://serverfault.com/questions/250559/how-to-restore-mysql-database-from-the-physical-files

Ich würde aber dringend zu dem Weg raten, der vorgesehen ist, da Du so am wenigsten Probleme zu erwarten hast.
 
... abgesehen davon, daß bei der "Dateien kopieren"-Methode es auch noch davon abhängig ist, welche Tabellen- und DB-Engine man verwendet, ob sie überhaupt funktioniert (von den trivialen Dingen wie Versionsgleichheit u.a. mal abgesehen)
 
Code:
mysqldump --master-data=2 --delete-master-logs --flush-logs --add-locks --create-options --allow-keywords --complete-insert --triggers --routines --events --order-by-primary --set-gtid-purged=OFF --tz-utc --hex-blob --lock-all-tables --all-databases -uroot -p > mysqldump.sql
 
@fpvmax:
Zur Erklärung: Eine Datenbank hat ein ganz spezielles Dateiformat. Das kann sich -theoretisch- bei jeder Versionsänderung auch ändern. Sollte also die Zieldatenbank nicht exakt gleich zur Quelldatenbank sein kann es hier schon knallen.

Das ist aber nur das eine Problem, das andere Problem ist, dass eine Datenbank die momentan läuft große Teile der Daten im RAM hält. Diese Daten können auch teilweise in den Dateien sein aber eben nicht vollständig - wenn du nun während die Datenbank läuft Dateien wegkopierst so ist es gut möglich dass du Murks bekommst. z.B. halb geschriebene Datensätze.

Und ja: Es besteht die Möglichkeit die Datenbank runter zu fahren, die Dateien zu sichern und dann diese Dateien bei einer exakt "baugleichen" Datenbank wieder zu verwenden. Aber wenn man das macht sollte man wissen was man tut.

Für alle anderen gibt es das Tool 'mysqldump' welches ein Dump mit SQL Befehlen erzeugt und somit ziemlich Versionsunabhängig ist.
(teilweise sogar Datenbankunabhängig, damit also auch noch lange, lange Zeit lesbar und verwendbar)

Joe User hat hierzu ja schon einen möglichen Befehl gepostet.

Thomas
 
Danke für die Antworten. Ich habe vergessen zu erwähnen, das es nur noch das Backup der Dateien gibt. Ein neuer Dump erstellen ist somit nicht möglich. Welche Version auf dem ursprünglichen Server lief, kann ich leider auch nicht mehr sagen. Dies wird mir nun zum Verhängnis. Es geht in erster Linie darum so viel wie möglich davon zu retten. Ein Verlust einiger Datensätze wäre zu verkraften.
 
Ganz schlechte Voraussetunhen. InnoDb oder MyISAM? Was für Dateien hast du?
Kannst du überhaupt auf Tabellen zugreifen nach dem einspielen der Dateiein? (vorher db runterfahren!)
 
Die .frm-Files sind nur die Tabellendefinitionen ohne Inhalt. Hast du nicht noch mehr gesichert? Wie groß sind die Dateien?
 
Ach ein paar weitere Infos wären auch nicht schlecht:
Was ist das für ein Server von dem das Backup ist?
Was, Wann und Wie wiurde gebackupt?
Warum gibt es den Server nun nicht mehr, bzw. die Daten?
Was ist das für eine Datenbank? Mehrere? Ein Forum? Ein Blog?...
Wie und von wem wurde der Server und die Datenbank denn installiert?
 
Es war ein Plesk Server mit 3 Webseiten u.a. ein größerer Blog. Das letzte Backup war vor ein paar Tagen, da ich den Server gekündigt hatte. Was mich irritiert. Du schreibst, die Dateien wären nur eine Tabellendeffinition ohne Inhalt. Dafür sind die aber ganz schön groß.
 
Last edited by a moderator:
Schonmal gefragt ob der Serverhoster evtl. noch Backups von der Maschine oder den Dateien hat? Bei manchen Virtualisierungslösungen ist so ein Backup für den Hoster leicht zu machen.
 
Ich habe meine letzte Antwort nochmals geändert. Die Dateien sind doch größer. Nein, Backup´s vom Hoster gibt es keine.
 
Das heißt wie groß sind die Dateien? Siehst du Daten wenn du sie mit dem Hexeditor ansiehst?

Code:
Each MyISAM table is stored on disk in three files. The files have names that begin with the table name and have an extension to indicate the file type. An .frm file stores the table format. The data file has an .MYD (MYData) extension. The index file has an .MYI (MYIndex) extension.
Quelle: https://dev.mysql.com/doc/refman/5.7/en/myisam-storage-engine.html

PS: Bei Innodb ists etwas anders aber auch da sollten keine Daten in .frm-Files sein.
 
Was mich irritiert. Du schreibst, die Dateien wären nur eine Tabellendeffinition ohne Inhalt. Dafür sind die aber ganz schön groß.
Das ist interessant, zeig bitte mal den Output:
Code:
find /path/to/mysql/ -type f -iname \*\.frm -print | xargs ls -alhS | head
 
Bin ja gespannt ob er den Befehl überhaupt eintippen kann denn der alte Server „scheint“ ja nicht mehr zu existieren.
Was genau da los ist, ist halt Raten mit der Glaskugel.
So kann man natürlich nicht effektiv helfen...
 
Back
Top