Я пишу это столько, чтобы напомнить себе, как и для кого-либо еще действительно 🙂 Как правило, я запускаю базы данных, работающие на моем MacBook, которые я использую для сайтов в активной разработке, я затем передать эти базы данных на промежуточный сервер, которые затем используются другими людьми в команде, а иногда и клиентов для ввода содержимого сайта. На прошлой неделе я импортировал контент с промежуточного сервера и переписал мою локалированную базу данных, думая, что промежуточный сервер был самым последним, но, как оказалось, я был неправ!
К счастью, я бегу Mac OS X в Time Machine резервного копирования на моем MacBook, поэтому я не видел проблемы, как я мог бы просто восстановить его от этого. Тем не менее, на самом деле это было не совсем так прямо вперед, чтобы сделать, так вот что я должен был сделать в конце концов, чтобы восстановить эту базу данных из моего резервного копирования Машины времени.
Шаг 1: Найдите локальные базы данных
Перейдите к местоположению баз данных MyS'L. Для моей установки MyS'L это находится на /usr/local/mysql, но в зависимости от того, как вы установили MyS'L это может быть в другом месте.
Как вы, вероятно, увидите, что это не место, вы можете просто регулярно просматривать в Finder на Mac, так что вам нужно будет использовать "Перейти к Folder … опция в меню 'Go' в Finder.
После того как вы добрались до этого места, вы увидите папку данных MyS'L, которая появляется с красным символом доступа на нем, так что вы не можете на самом деле перейти прямо в нее через finder. Видя, как мы не можем получить доступ к папке для восстановления конкретной базы данных мы просто восстановить всю папку из резервного копирования машины времени, а не.
Шаг 2: Выключение сервера MyS'L
Важно, чтобы вы закрыли процесс сервера MyS'L, прежде чем продолжить. Как вы это делаете, зависит от того, как вы установили MyS'L. Если вы установили MyS'L от официального установщика для OS X, загруженного с веб-сайта MyS'L, то у вас может быть системное предпочтение, которое вы можете использовать, чтобы остановить его.
Если вы установили MyS'L другим способом, например, самостоятельной компиляцией или через Порты Mac или вы просто хотите использовать Терминал, то вы можете остановить его от терминала вместо этого. Можно использовать следующую команду:
судо mysqladmin остановки
Если на вашем пути в Терминале нет настроен MyS'L, возможно, вам придется использовать полный путь к команде mysqladmin:
sudo /usr/local/mysql/bin/mysqladmin shutdown
Путь к этим файлам может варьироваться в зависимости от того, как вы установили MyS'L, так что если он не работает, то вам нужно будет проверить правильное местоположение. Обратите внимание, что я также использовал 'sudo' в этой команде в случае, если вам нужны корневые привилегии, чтобы остановить процесс MyS'L. Проверьте документацию MyS'L для вашей версии MyS'L для получения дополнительной помощи.
Шаг 3: Переименуйте папку данных MyS'L через Терминал
Следующим шагом является временное переименование папки данных MyS'L, чтобы избежать столкновений при восстановлении папки данных из резервного копирования Time Machine. Сначала вам нужно попасть в свой каталог MyS'L:
cd /usr/local/mysql
Затем вы можете перечислить все файлы, чтобы проверить, что вы находитесь в нужном месте:
ls-al
Теперь вы должны увидеть все файлы, включая каталог данных, где расположены базы данных. Теперь мы можем использовать следующую команду для переименования каталога данных:
sudo mv данные данных-bak
Как только это будет сделано, вы должны увидеть ваш каталог счастливо переименован в обоих терминала и окна Finder.
Шаг 4: Введите машину времени, чтобы восстановить каталог данных MyS'L
Следующим шагом является ввести режим Time Machine и восстановить каталог данных из резервного копирования. Я уверен, что вы, вероятно, знаете, как войти в режим Time Machine, но убедитесь, что вы входите в то время как сосредоточены на окне MyS'L Finder.
Вернитесь назад во времени достаточное количество, так что вы определенно будете получать версию данных, которые вы хотите, выделить папку данных и нажмите Восстановление. Поскольку мы переименовали каталог данных Time Machine, мы просто восстановим каталог данных без каких-либо подсказок. Теперь вы должны увидеть как восстановленный каталог данных, так и переименованный каталог data-bak.
Шаг 5: Копирование базы данных из восстановленного каталога данных
Теперь вы можете скопировать базу данных из восстановленного каталога данных, это делается через следующую команду Терминала:
sudo cp -R данные-bak/my_database_name данные/my_database_name
База данных на самом деле каталог, содержащий другие файлы, так что вам нужно использовать '-R' флаг, чтобы повторно скопировать все это через с каталогом себя.
Шаг 6: Удалите восстановленный каталог данных и переименуйте каталог data-bak
Теперь, когда база данных восстановлена и скопирована, можно безопасно удалить восстановленный каталог данных, так как он больше не нужен на данный момент. Примечание: Будьте очень осторожны, используя команду 'rm'! Плохие вещи могут произойти, если использовать неправильно!
данные sudo rm-R
Затем можно переименовать каталог data-bak обратно в его исходное название 'данные', обратите внимание, что команда 'mv' не требует флага '-R':
данные sudo mv data-bak
Шаг 7: Проверить разрешения файлов / собственности
Возможно, вам придется проверить разрешения файлов и право собственности на базу данных, которую вы только что восстановили, чтобы убедиться, что она будет доступна MyS'L, когда она работает. Они могут варьироваться в зависимости от вашего метода установки MyS'L, но они должны быть что-то вроде этого:
drwx—— 60 _mysql 2040 8 мая 12:14 my_database_name
В основном каталог принадлежит пользователю «_mysql» и в группе «колесо». Если вам нужно изменить владельца, то используйте следующую команду:
sudo chown -R _mysql данные/my_database_name
Шаг 8: Запустите MyS'L
После того, как все это было сделано, вы можете начать MyS'L снова, используя либо системные предпочтения, если у вас есть это или через команду Терминала:
судо mysqld_safe
или с полным траекторией основой:
sudo /usr/local/mysql/bin/mysqld_safe
Шаг 9: Нет шага 9!
Надеюсь, теперь вы должны иметь доступ к недавно восстановленной базе данных. Как я уже говорил в начале, это метод, который я использовал для восстановления базы данных себя в последнее время, могут быть и другие способы сделать это, но, надеюсь, эти шаги могут быть использованы для кого-либо еще в той же ситуации.