Як я можу перемістити базу даних MySQL на інший диск?


34

Я використовую MySQL 5.5 на локальній машині для аналізу великої кількості державних даних. Я створив локальну базу даних, яка знаходиться на моєму диску за замовчуванням (Win7 C: диск). Я хотів би зберегти дані на своєму E: накопичувачі, великому зовнішньому накопичувачі eSATA.

Які кроки я повинен зробити?

mysql 

не можете експортувати DB як файл sql, а потім збережіть файл do e: тоді в майбутньому, якщо ви хочете відновити dB, ви можете імпортувати цей файл

@tq - Це не спрацює. Він хоче змінити каталог даних сервера MySQL. Якщо він експортує його та імпортує, він все одно буде на тому ж самому приводі!

Обережно, коли ви переміщуєте файли бази даних на зовнішній накопичувач, вам доведеться тримати його підключеним до комп'ютера, інакше ваша база даних вийде з
ладу,

Відповіді:


35
  1. MySQL відключення.
  2. Перемістіть усі файли у поточному каталозі даних на нове місце (ознайомтесь із розташуванням на кроці 3 - datadirпараметр).
  3. Знайдіть my.iniфайл (він знаходиться в каталозі установки mysql). Змініть datadirзначення параметра, щоб вказати на нове місце.
  4. Почати mysql.

Це дало мені помилки при спробі запуску mysql (проблеми з дозволом). Я зупинився на вирішенні, яке я розміщую тут , і, сподіваюся, допоможе врятувати когось деякий час.
snapfractalpop

1
@snapfractalpop питання для Windows
adam

@adam windows згадується в тілі питання, але він не позначений як питання Windows, а також не зазначається у заголовку. Я розмістив посилання в коментарях, тому що можливо, інші користувачі, які не користуються Windows, можуть також натрапити на це питання.
snapfractalpop

Я виявив, що я повинен використовувати, /а не \ як роздільники каталогів у шляху до каталогу datadir. Я використовую WAMPserver в Windows 10.
Стів

Каталог ProgramData може бути прихований у вашому файловому провіднику. Я думав, що вона не існує, поки я не змінив налаштування, щоб показати приховані файли.
WestAce

6

Незважаючи на те, що ви просите про Windows, ось кілька корисних вказівок для тих, хто закінчується тут, шукаючи вказівки щодо Linux / ubuntu:

Припущення:

  • У вас є дані mysql на зовнішньому / usb / альтернативному диску /mountpoint/var/lib/mysql, можливо, з комп’ютера, який помер або старий
  • Ви хочете перенести його на нову установку Ubuntu локально /var/lib/mysql
  • Зупинити MySQL з:
    sudo /etc/init.d/mysql stop.
  • Зробіть резервну копію поточного (чистий) MySQL каталогу даних з:
    sudo cp -Rp /var/lib/mysql /var/lib/mysql.backup.
  • Потім скопіюйте старий каталог даних зі старого диска з:
    sudo cp -Rp /mountpoint/var/lib/mysql /var/lib/mysql
    де mountpointшлях до вершини.
  • Тепер перезапустіть MySQL за допомогою:
    sudo /etc/init.d/mysql start

При будь-якій удачі, MySQL повинен перезапуститись, і ви повинні мати свої старі бази даних назад.

Джерело mb_webguy@ubuntuforums.org


3
(!) це не буде працювати, оскільки конфігурація все ще вказує на старе місце розташування
ADOConnection

4

Рішення 1:

  1. Перш за все, створіть резервну копію даних за допомогою `mysqldump.
  2. Якщо ви встановите сервер Mysql з офіційного пакету, ви можете це зробити, запустивши програму MySQLINstanConfig.exe з каталогу бін вашого сервера.
  3. Імпорт даних

MySQLINstanConfig.exe

Друге рішення (не рекомендується, але працює на одній машині)

  1. Зупинити сервер Mysql.
  2. Скопіюйте дані зі свого каталогу даних у новий каталог
  3. Відкрийте файл my.cnf (У моєму випадку "C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ my.ini")
  4. знайти такий рядок, як datadir = "C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data \" та змінити шлях до нового місця розташування
  5. Запустіть ваш сервер

Станом на версію 5.6 MySQLInstanceConfig.exe більше не розповсюджується. Цю функціональність замінює інсталятор. http://bugs.mysql.com/bug.php?id=66306


Є еквівалентна програма Linux для переміщення даних
Рон Пігготт

Після переміщення даних із другим підходом я не зміг запустити MariaDB (версія 5.5). Після надання користувачу доступу доступу до нового datadir послуга починається, і я підключаюся до БД. Однак доступ до будь-якої таблиці по- , як і раніше не вдається: [ERROR] Cannot find or open table <db>/<table> from the internal data dictionary of InnoDB though the .frm file for the table exists.. Як я можу переконатися, що дозволи встановлені правильно?
Брем

2

Для Windows, як і для MySQL Installer 1.4.6 (2015-04-07) , місце розташування даних може бути вказане в ключі реєстру, який визначає розташування my.iniфайлу, тому якщо дані спочатку були встановлені у не за замовчуванням місці my.iniфайл не буде C:\ProgramData\MySQL\MySQL Server x.x\.

Розташування значень реєстру (принаймні, як для MySQL 5.6):

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MySQL AB\MySQL Server x.x\

Location- це REG_SZвказівка ​​на папку, в якій розміщені файли додатків MySQL; за замовчуванням:C:\Program Files\MySQL\MySQL Server x.x\

DataLocation- це REG_SZвказівка ​​на папку, де my.iniзнаходиться; за замовчуванням також:C:\Program Files\MySQL\MySQL Server x.x\

Також my.iniшлях до файлу включається в команду служби під цим ключем реєстру: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MySQLXXу ImagePath REG_EXPAND_SZзначенні.

Типовим значенням цього рядка є: "C:/Program Files/MySQL/MySQL Server 5.6/bin\mysqld" --defaults-file="C:\Program Files\MySQL\MySQL Server x.x\my.ini" MySQLXX

Отже, суть полягає в тому, що для переміщення файлів даних у цьому сценарії ви повинні дотримуватися кроків, розміщених @ITCuties з деякими доповненнями.

Ось повні кроки:

  1. MySQL відключення.
  2. Знайдіть вищевказане DataLocationзначення реєстру, щоб знайти поточне my.iniрозташування файлу, і якщо ви також хочете також перемістити my.iniфайл, оновіть DataLocationшлях і перемістіть my.iniфайл до цього нового шляху.
  3. Якщо ви змінюєте розташування my.iniфайлу, вам потрібно оновити шлях у переліченому вище ключі реєстру службових команд.
  4. Відкрийте my.iniфайл, знайдіть datadirпараметр. Перемістіть файли з цього datadirшляху до шляху, в якому ви хочете, щоб дані перебували, а також оновіть datadirпараметр цим новим шляхом.
  5. Почати mysql.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.