Де MySQL зберігає файли баз даних у Windows і як називаються файли?


81

Тож я випадково відформатував свій жорсткий диск і перевстановив Windows і забув зробити резервну копію важливої ​​бази даних, яка була на моєму сервері MySQL. Зараз я намагаюся відновити файли за допомогою деякого програмного забезпечення, але не знаю, на що звертати увагу.

У якому шляху зберігаються файли та як їх називають (яке правило іменування або розширення файлу слід шукати)?

Я вважаю, що мій сервер використовував MyISAM, але не впевнений на 100%.

Будь-яка порада буде вдячна!


розширення файлу.sql
Mr. Alien

не впевнений, але я завжди роблю резервну копію даних C: \ wamp \ bin \ mysql \ mysql5.5.24 \ даних цієї папки перед форматуванням
Ravi,

Я б просто експортував свої таблиці в .sql, якби пам'ятав, але оскільки давно не користувався базою даних, то зовсім забув про неї
Бред,

1
@ Mr.Alien - not.sql
Rick James

Відповіді:


88

Ви можете перевірити my.iniфайл, щоб побачити, де знаходиться папка даних.

Зазвичай є папка {mysqlDirectory} / data

Зберігання даних MySQL:

Commands.frm
Commands.myd
Commands.myi

Файли * .frm містять визначення таблиць. Ваші файли * .myi - це файли індексу MyISAM. Ваші файли * .myd містять дані таблиці.

Редагування / оновлення . Через зацікавленість у питанні тут є додаткова інформація, яка міститься також у коментарях.

У Windows 8.1 бази даних MySQL зберігаються (за замовчуванням) тут: C:\ProgramData\MySQL\MySQL Server 5.6\data

Папка C: \ ProgramData - це прихована папка, тому вам потрібно ввести її в адресу провідника Windows, щоб туди потрапити. У цій папці даних іменуються бази даних /{database_name_folder}/{database_tables_and_files}.

Наприклад,

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

Дякую @ marty-mcgee за цей вміст


12
це (.myd) лише для двигуна MyISAM. Для InnoDB вам потрібно побачити файл "ibdata1", розміщений у "{mysqlDirectory} /".
Рахіл Хасан

чи можу я скопіювати цю папку даних / mydatabase з іншого ПК на свій? З якоїсь причини імпорт sql (із використанням WAMP) НЕЙМОВОПОВІЛЬНИЙ ПОВІЛЬНИЙ, але не на іншому ПК. Я думаю скопіювати її папку даних
dominicbri7

чому ви не використовуєте mysql_dump?
Удан

17
У Windows 8.1 бази даних MySQL зберігаються (за замовчуванням) тут: C:\ProgramData\MySQL\MySQL Server 5.6\data- ця папка C:\ProgramDataє прихованою папкою, тому вам потрібно ввести її в адресу провідника Windows, щоб туди потрапити. У цій папці даних іменуються бази даних /{database_name_folder}/{database_tables_and_files}. Наприклад, C:\ProgramData\MySQL\MySQL Server 5.6\data\mydatabase\mytable.frmіC:\ProgramData\MySQL\MySQL Server 5.6\data\mydatabase\mytable.ibd
Марті Макгі

1
Коментар Марті-Макгі вище повинен бути відповіддю для людей, які використовують InnoDB. Я майже пропустив його рішення, оскільки воно було в коментарі.
HPWD

38

У Windows 7 база даних MySQL зберігається за адресою

C: \ ProgramData \ MySQL \ MySQL Server 5.6 \ дані

Примітка: це прихована папка. І мій приклад для MySQL Server версії 5.6; змініть назву папки залежно від вашої версії, якщо вона інша.

Це дуже зручно знати про це місце, оскільки іноді MySQL Workbench не вдається скинути схеми (або імпортувати бази даних). Це пов’язано здебільшого з наявністю файлів у папках db, які з якихось причин не вдалося видалити в попередньому процесі Workbench. Видаліть файли за допомогою Провідника Windows і повторіть спробу (видалення, імпорт), вашу проблему слід вирішити.

Сподіваюся, це допомагає :)


15

У мене є кореневий файл my-default.ini у кореневій системі, і є одна конфігурація сервера:

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

Так що це не підказує мені шлях.

Найкращий спосіб - це підключитися до бази даних і запустити цей запит:

SHOW VARIABLES WHERE Variable_Name LIKE "%dir" ;

Ось результат цього:

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

Якщо ви хочете побачити всі параметри, налаштовані для бази даних, виконайте це:

SHOW VARIABLES;

Змінна storage_engine підкаже, чи використовуєте ви InnoDb або MyISAM.


Ні, це скаже вам за замовчуванням. Вам потрібно скористатися SHOW CREATE TABLEдля перевірки певної таблиці. А різні таблиці можуть використовувати різні двигуни.
Рік Джеймс,

6

Для Windows 7: c: \ users \ all users \ MySql \ MySql Server xx \ Data \

Де xx - номер версії сервера sql, встановленого на вашому комп'ютері.

Фідель


4

Просто виконайте пошук файлів * .myi у Windows на локальних розділах. Період.

Як я підозрював, вони знаходились у папці програмних файлів, а не використовували відповідну папку лише для даних, як це робить більшість інших менеджерів баз даних.

Навіщо здійснювати пошук файлу my.ini, відкривати його за допомогою редактора, шукати рядок шляху, переконайтесь, що ви не змінюєте файл конфігурації (!), А потім виконувати другий пошук? Складний без жодної додаткової вигоди, крім практичного набору тексту.


Вибрав цей, тому що він швидкий і простий.
Mousa Dirksz,


3

Зазвичай він знаходиться в папці, вказаній нижче, але ProgramData, як правило, є прихованою папкою. Щоб показати його, перейдіть до панелі керування, щоб знайти "папку", потім у розширених налаштуваннях поставте галочку показати приховані файли та натисніть застосувати. C: / ProgramData / MySQL / MySQL Server 5.5 / Data /


3

MYSQL 8.0:

Шукаючи my.iniна диску, ми знайдемо цю папку:

C: \ ProgramData \ MySQL \ MySQL Server 8.0
Це ProgramData, ніProgram file

Дані в папці: \Data.

Кожен databaseмає папку, кожен table- файл, кожен index- понад 1 файл.

Ось зразок бази даних sakila: введіть тут опис зображення


2

Я щойно встановив MySQL 5.7 на Windows7. Файли бази даних знаходяться в наступному каталозі, який є прихованим: C:\ProgramData\MySQL\MySQL Server 5.7\Data

my.iniФайл знаходиться в тому ж корені:C:\ProgramData\MySQL\MySQL Server 5.7


2

Якщо ви використовуєте Win10 із встановленим сервером Xampp, то ви можете знайти папку даних у папці C: \ xampp \ mysql \ data

Усередині папки даних кожна база даних має свою папку, яка, в свою чергу, містить файли .frm, .myi та .myd, які представляють одну таблицю в базі даних.

Якщо, наприклад, ви створили базу даних з ім'ям: myschool і всередині бази даних, у вас є три таблиці з іменами:

  1. Розплідник
  2. Первинна
  3. Вторинні

Потім ви отримаєте для дитячого столу: nursery.frm, nursery.myi та nursery.myd. Те саме стосуватиметься первинних та вторинних таблиць. Таким чином, у згаданому мною тут загалом буде 9 файлів у папці бази даних з назвою myschool .

Потім ви можете скопіювати папку бази даних і використовувати її в новій папці даних інсталяції mysql.

Сподіваюся, це допоможе.

З найкращими побажаннями.


1

в MySQL є
".myd" самобаза даних і
".tmd" тимчасовий файл.
Але іноді я бачу також ".sql".

Це залежить від ваших налаштувань та / або способу експорту.


0

1) Знайдіть my.ini, який зберігається в інсталяційній папці MySQL.

Наприклад,

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

2) Відкрийте “my.ini” за допомогою нашого текстового редактора.

#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

Знайдіть “datadir”, це місце, де MySQL зберігає дані у Windows.


0

C: \ Program Files \ MySQL \ MySQL Workbench 6.3 CE \ sys

вставте URLу файл вікна та перейдіть Tables, Procedures, Functionsіз цього каталогу

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.