Я пишу це стільки, скільки, щоб нагадати собі, як для будь-кого іншого дійсно 🙂 Я, як правило, запускати бази даних, що працюють на моєму MacBook, який я використовую для сайтів в активній розробці, я потім передати ці бази даних на постановочий сервер, які потім використовуються іншими людьми в команді, а іноді клієнти для введення вмісту сайту. Минулого тижня я імпортував вміст із сервера постановки та перезасигував мою локальну базу даних, думаючи, що постановочний сервер був найсвіжішим, але, як виявилося, я був некоректним!
На щастя, я працюю mac OS X час машини резервного копіювання на моєму MacBook, так що я не бачив проблеми, як я міг би просто відновити його з цього. Тим не менш, насправді це було не так прямо вперед, щоб зробити, так що ось що мені довелося зробити в кінці кінців, щоб відновити цю базу даних з моєї резервної копії Time Machine.
Крок 1: Знайдіть локальні бази даних
Перейдіть до розташування баз даних MySQL. Для моєї установки MySQL це знаходиться на / usr / local / mysql, але в залежності від того, як ви встановили MySQL це може бути в іншому місці.
Оскільки ви, ймовірно, побачите, що це не місце, яке ви можете просто регулярно переглядати в Finder на Mac, тому вам потрібно буде використовувати "Перейти до папки …" в меню "Перейти" в Finder.
Після того, як ви потрапили в це місце, ви побачите папку даних MySQL, яка з'являється з червоним символом без доступу на ньому, щоб ви не могли переміщатися прямо в неї через finder. Бачачи, як ми не можемо отримати доступ до папки, щоб відновити певну базу даних, ми просто відновимо всю папку з резервної копії Time Machine.
Крок 2: Завершення роботи сервера MySQL
Важливо, щоб ви закрили процес сервера MySQL, перш ніж продовжити. Як ви це робите, залежить від того, як у вас встановлено MySQL. Якщо ви встановили MySQL з офіційного інсталятора для OS X, завантаженого з веб-сайту MySQL, то у вас може бути системний параметр, який ви можете використовувати, щоб зупинити його.
Якщо ви встановили MySQL іншим способом, таким як самостійно скомпільований або через Mac-порти або ви просто хочете використовувати термінал, то ви можете зупинити його з терміналу замість цього. Можна використовувати таку команду:
Sudo mysqladmin завершення роботи
Якщо у вас немає MySQL налаштований на вашому шляху в терміналі вам може знадобитися використовувати повний шлях до команди mysqladmin:
sudo /usr/local/mysql/bin/mysqladmin завершення роботи
Шлях до цих файлів може відрізнятися залежно від того, як ви встановили MySQL, тому, якщо він не працює, то вам потрібно буде перевірити правильне розташування. Зверніть увагу, що я також використовував "судо" в цій команді у випадку, якщо вам потрібні права root, щоб зупинити процес MySQL. Перевірте документацію MySQL для вашої версії MySQL для отримання додаткової допомоги.
Крок 3: Перейменуйте папку даних MySQL через термінал
Наступним кроком є тимчасове перейменування папки даних MySQL, щоб уникнути будь-яких зіткнень під час відновлення папки даних з резервної копії Time Machine. Спочатку вам потрібно потрапити в каталог MySQL:
cd /usr/місцевий/mysql
Потім ви можете перерахувати всі файли, щоб перевірити, що ви в потрібному місці:
(у 200 за все)
Тепер ви повинні побачити всі файли, включаючи каталог "дані", де знаходяться бази даних. Тепер ми можемо використовувати таку команду, щоб перейменувати каталог даних:
Дані-випікання даних sudo mv
Після того, як це буде зроблено, ви повинні побачити ваш каталог з радістю перейменований як в терміналі, так і у вікні Finder.
Крок 4: Введіть time Machine, щоб відновити каталог даних MySQL
Наступним кроком буде введення в режим Time Machine і відновлення каталогу даних з резервної копії. Я впевнений, що ви, напевно, знаєте, як увійти в режим time Machine, але переконайтеся, що ви входите в той час як зосереджені на вікні MySQL Finder.
Повернутися назад у часі достатню кількість, щоб ви обов'язково отримували потрібну версію даних, виділяли папку даних і натискали кнопку Відновити. Тому що ми перейменували каталог даних Time Machine буде просто відновити каталог даних без будь-яких підказок. Тепер ви повинні побачити як відновлений каталог даних, так і перейменований каталог data-bak.
Крок 5: Скопіюйте базу даних із відновленого каталогу даних
Тепер можна скопіювати базу даних з відновленого каталогу даних, це робиться за допомогою такої команди терміналу:
Sudo cp -R даних-випічки / my_database_name даних / my_database_name
База даних насправді є каталогом, що містить інші файли, тому вам слід скористатися позначкою «- R», щоб рекурсивно скопіювати всі ці файли за допомогою самого каталогу.
Крок 6: Видаліть відновлений каталог даних і перейменуйте каталог data-bak
Тепер, коли база даних відновлюється та копіюється, ви можете безпечно видалити відновлений каталог даних, оскільки він більше не потрібен на даний момент. Примітка: Будьте дуже обережні, використовуючи команду "rm"! Погані речі можуть статися, якщо використовувати неправильно!
Sudo rm -R даних
Потім ви можете перейменувати каталог data-bak назад, щоб він був оригінальним ім'ям "дані", зверніть увагу, що команда "mv" не вимагає позначки "-R":
Дані про дані для випічки даних sudo mv
Крок 7: Перевірте дозволи на доступ до файлів / право власності
Можливо, вам доведеться перевірити дозволи на доступ до файлів і право власності на щойно відновлену базу даних, щоб переконатися, що вона буде доступна MySQL під час роботи. Вони можуть відрізнятися в залежності від вашого методу встановлення MySQL, але вони повинні бути чимось на кшталт цього:
Drwx—— 60 _mysql 2040 8 травня 12:14 my_database_name
В основному каталог належить користувачеві "_mysql" і в групі "колесо". Якщо потрібно змінити власника, скористайтеся такою командою:
Sudo chown -R _mysql даних/my_database_name
Крок 8: Запуск MySQL
Після того, як все це буде зроблено, ви можете запустити MySQL знову, використовуючи або системні налаштування, якщо у вас є це, або за допомогою команди Термінал:
Судо mysqld_safe &
або з повним шляхом:
судо /usr/місцевий/mysql/bin/mysqld_safe &
Крок 9: Немає кроку 9!
Сподіваюся, тепер ви повинні мати доступ до вашої нещодавно відновленої бази даних. Як я вже думав на початку, це метод, який я використовував для відновлення бази даних себе останнім часом, можуть бути й інші способи зробити це, але, сподіваюся, ці кроки можуть бути використані для будь-кого іншого в тій же ситуації.