Wo speichert MySQL Datenbankdateien unter Windows und wie heißen die Dateien?

79

Also habe ich versehentlich meine Festplatte formatiert und Windows neu installiert und vergessen, eine wichtige Datenbank zu sichern, die ich auf meinem MySQL-Server hatte. Ich versuche jetzt, Dateien mit einer Software zu retten, weiß aber nicht, wonach ich suchen soll.

In welchem ​​Pfad werden die Dateien gespeichert und wie heißen die Dateien (nach welcher Namenskonvention oder Dateierweiterung sollte ich suchen)?

Ich glaube, mein Server hat MyISAM verwendet, bin mir aber nicht 100% sicher.

Jeder Rat wäre dankbar!

Brad
quelle
Dateierweiterung ist.sql
Mr. Alien
Ich bin mir nicht sicher, aber ich sichere immer C: \ wamp \ bin \ mysql \ mysql5.5.24 \ data diesen Ordner vor dem Formatieren
Ravi
Ich hätte meine Tabellen nur nach .sql exportiert, wenn ich mich erinnert hätte, aber da ich die Datenbank schon lange nicht mehr benutzt habe, habe ich sie komplett vergessen
Brad
1
@ Mr.Alien - nicht.sql
Rick James

Antworten:

85

Sie können die my.iniDatei überprüfen, um festzustellen, wo sich der Datenordner befindet.

Normalerweise gibt es einen Ordner {mysqlDirectory} / data

MySQL-Datenspeicherung:

Commands.frm
Commands.myd
Commands.myi

Die * .frm-Dateien enthalten die Tabellendefinitionen. Ihre * .myi-Dateien sind MyISAM-Indexdateien. Ihre * .myd-Dateien enthalten die Tabellendaten.

Bearbeiten / Aktualisieren . Aufgrund des in der Frage gezeigten Interesses finden Sie hier weitere Informationen, die auch in den Kommentaren zu finden sind.

In Windows 8.1 werden die MySQL-Datenbanken (standardmäßig) hier gespeichert: C:\ProgramData\MySQL\MySQL Server 5.6\data

Der Ordner C: \ ProgramData ist ein versteckter Ordner. Sie müssen ihn daher in die Windows Explorer-Adresse eingeben, um dorthin zu gelangen. In diesem Datenordner werden die Datenbanken benannt /{database_name_folder}/{database_tables_and_files}.

Zum Beispiel,

C:\ProgramData\MySQL\MySQL Server 5.6\data\mydatabase\mytable.frm
C:\ProgramData\MySQL\MySQL Server 5.6\data\mydatabase\mytable.ibd 

Vielen Dank an @ marty-mcgee für diesen Inhalt

Udan
quelle
12
Dies (.myd) ist nur für die MyISAM-Engine. Für InnoDB muss die Datei "ibdata1" im "{mysqlDirectory} /" angezeigt werden.
Raheel Hasan
Kann ich diesen Ordner data / mydatabase von einem anderen PC auf meinen kopieren? Aus irgendeinem Grund ist der SQL-Import (mit WAMP) UNGLAUBLICH LANGSAM, jedoch nicht auf dem anderen PC. Ich denke daran, seinen
Datenordner zu
Warum benutzt du nicht mysql_dump?
Udan
17
In Windows 8.1 werden die MySQL-Datenbanken (standardmäßig) hier gespeichert: C:\ProgramData\MySQL\MySQL Server 5.6\data- Dieser Ordner C:\ProgramDataist ein versteckter Ordner. Sie müssen ihn daher in die Windows Explorer-Adresse eingeben, um dorthin zu gelangen. In diesem Datenordner werden die Datenbanken benannt /{database_name_folder}/{database_tables_and_files}. Zum Beispiel C:\ProgramData\MySQL\MySQL Server 5.6\data\mydatabase\mytable.frmundC:\ProgramData\MySQL\MySQL Server 5.6\data\mydatabase\mytable.ibd
Marty McGee
1
Marty-McGees Kommentar oben sollte eine Antwort für Leute sein, die InnoDB verwenden. Ich habe seine Lösung fast verpasst, da sie in einem Kommentar stand.
HPWD
37

In Windows 7 wird die MySQL-Datenbank unter gespeichert

C: \ ProgramData \ MySQL \ MySQL Server 5.6 \ data

Hinweis: Dies ist ein versteckter Ordner. Mein Beispiel ist MySQL Server Version 5.6. Ändern Sie den Ordnernamen basierend auf Ihrer Version, falls abweichend.

Es ist praktisch, diesen Speicherort zu kennen, da die MySQL Workbench manchmal keine Schemas ablegt (oder Datenbanken importiert). Dies ist hauptsächlich auf das Vorhandensein von Dateien in den Datenbankordnern zurückzuführen, die aus irgendeinem Grund in einem früheren Prozess von der Workbench nicht entfernt werden konnten. Entfernen Sie die Dateien mit dem Windows Explorer und versuchen Sie es erneut (Löschen, Importieren). Ihr Problem sollte behoben sein.

Hoffe das hilft :)

Julio
quelle
15

Ich habe eine Standarddatei my-default.ini im Stammverzeichnis und es gibt eine Serverkonfiguration:

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

Das sagt mir also nicht den Weg.

Der beste Weg ist, eine Verbindung zur Datenbank herzustellen und diese Abfrage auszuführen:

SHOW VARIABLES WHERE Variable_Name LIKE "%dir" ;

Hier ist das Ergebnis davon:

basedir                     C:\Program Files (x86)\MySQL\MySQL Server 5.6\
character_sets_dir          C:\Program Files (x86)\MySQL\MySQL Server 5.6\share\charsets\

datadir                     C:\ProgramData\MySQL\MySQL Server 5.6\Data\
innodb_data_home_dir    
innodb_log_group_home_dir   .\
lc_messages_dir             C:\Program Files (x86)\MySQL\MySQL Server 5.6\share\

plugin_dir                  C:\Program Files (x86)\MySQL\MySQL Server 5.6\lib\plugin\

slave_load_tmpdir           C:\Windows\SERVIC~2\NETWOR~1\AppData\Local\Temp
tmpdir                      C:\Windows\SERVIC~2\NETWOR~1\AppData\Local\Temp

Wenn Sie alle für die Datenbank konfigurierten Parameter anzeigen möchten, führen Sie Folgendes aus:

SHOW VARIABLES;

Die Variable storage_engine teilt Ihnen mit, ob Sie InnoDb oder MyISAM verwenden.

Mukus
quelle
Nein, das sagt Ihnen die Standardeinstellung. Sie müssen verwenden SHOW CREATE TABLE, um eine bestimmte Tabelle zu überprüfen. Und verschiedene Tabellen können verschiedene Engines verwenden.
Rick James
6

Für Windows 7: c: \ Benutzer \ Alle Benutzer \ MySQL \ MySQL Server xx \ Daten \

Wobei xx die Versionsnummer des auf Ihrem Computer installierten SQL-Servers ist.

Fidel

user3256430
quelle
4

Führen Sie einfach eine Windows-Suche nach * .myi-Dateien auf Ihren lokalen Partitionen durch. Zeitraum.

Wie ich vermutet habe, befanden sie sich in einem Programmdateiordner, anstatt wie bei den meisten anderen Datenbankmanagern einen geeigneten Nur-Daten-Ordner zu verwenden.

Warum eine my.ini-Dateisuche durchführen, sie mit einem Editor öffnen, die Pfadzeichenfolge nachschlagen, sicherstellen, dass Sie die Konfigurationsdatei (!) Nicht ändern, und dann eine zweite Suche durchführen? Kompliziert ohne einen Hauch von Zusatznutzen, außer das Tippen mit der Berührung zu üben.

AleDB
quelle
Ich habe dieses ausgewählt, weil es schnell und einfach ist.
Mousa Dirksz
3

Es befindet sich normalerweise in dem unten angegebenen Ordner, aber ProgramData ist normalerweise ein versteckter Ordner. Um es anzuzeigen, gehen Sie zur Systemsteuerung und suchen Sie nach "Ordner". Aktivieren Sie dann unter "Erweiterte Einstellungen" die Option "Versteckte Dateien anzeigen" und klicken Sie auf "Übernehmen". C: / ProgramData / MySQL / MySQL Server 5.5 / Data /

BK
quelle
3

MYSQL 8.0:

Suchen Sie my.iniauf der Festplatte, wir finden diesen Ordner:

C: \ Programme \ MySQL \ MySQL Server 8.0
Es ist ProgramDatanichtProgram file

Die Daten befinden sich im Unterordner : \Data.

Jeder databasebesitzt einen Ordner, jeder tableist eine Datei, jeder indexist 1+ Dateien.

Hier ist eine Beispieldatenbank sakila: Geben Sie hier die Bildbeschreibung ein

Dong dong
quelle
2

Ich habe gerade MySQL 5.7 unter Windows7 installiert. Die Datenbankdateien befinden sich im folgenden versteckten Verzeichnis: C:\ProgramData\MySQL\MySQL Server 5.7\Data

Die my.iniDatei befindet sich im selben Stammverzeichnis:C:\ProgramData\MySQL\MySQL Server 5.7

Erik
quelle
2

Wenn Sie Win10 mit installiertem Xampp-Server verwenden, finden Sie den Datenordner unter C: \ xampp \ mysql \ data

Innerhalb des Datenordners verfügt jede Datenbank über einen eigenen Ordner, der wiederum die Dateien .frm, .myi und .myd enthält, die für eine einzelne Tabelle in der Datenbank stehen.

Wenn Sie beispielsweise eine Datenbank mit dem Namen myschool erstellt haben und innerhalb der Datenbank drei Tabellen mit den Namen haben:

  1. Kindergarten
  2. Primär
  3. Sekundär

Dann haben Sie für den Kindergarten Tisch: nursery.frm, nursery.myi und nursery.myd. Gleiches gilt für die Primär- und Sekundärtabelle. In dem hier erwähnten Ordner befinden sich also insgesamt 9 Dateien im Datenbankordner mit dem Namen myschool .

Sie können dann den Datenbankordner kopieren und in Ihrem neuen MySQL-Installationsdatenordner verwenden.

Ich hoffe das hilft.

Freundliche Grüße.

Saliu Muideen
quelle
1

In MySQL sind
".myd" eine Datenbank selbst und
".tmd" eine temporäre Datei.
Aber manchmal sehe ich auch ".sql".

Dies hängt von Ihren Einstellungen und / oder der Exportmethode ab.

Aleksandr Khomenko
quelle
0

1) Suchen Sie die Datei my.ini, die im MySQL-Installationsordner gespeichert ist.

Zum Beispiel,

C:\Program Files\MySQL\MySQL Server 5.1\my.ini

2) Öffnen Sie die "my.ini" mit unserem bevorzugten Texteditor.

#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.1/"

#Path to the database root/"
datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data

Suchen Sie den "Datenverzeichnis". Hier speichert MySQL die Daten in Windows.

Ami
quelle
0

C: \ Programme \ MySQL \ MySQL Workbench 6.3 CE \ sys

URLIn die Fensterdatei einfügen und Tables, Procedures, Functionsaus diesem Verzeichnis abrufen

Muhammad Abbas
quelle