Как перенести базу данных MySQL
От автора: недавно в гости родственники заезжали. Так они за пару дней истощили сначала всю продуктовую базу, затем «прокомпостировали» всю нервную, а под конец спалили музыкальную (музыкальный центр). В общем, от греха подальше я решил побыстрее перенести базу данных MySQL. Если вы тоже оказались в такой ситуации, тогда обязательно прочитайте эту статью.
Быстрый способ экспорта
Начнем с обзора phpMyAdmin. Чтобы перенести базу, сначала нужно создать ее дубликат. Для этого в программе имеется специальный функционал. Рассмотрим детально данный процесс:
Можно сначала выбрать в списке слева нужную базу, и затем перейти по вкладке меню «Экспорт». Если использовать данный вариант, то будет произведен потабличный перенос MySQL. Для этого в «Способ экспорта» устанавливаем «Обычный», а в «Таблицы» выбираем элементы экспорта.
Если требуется экспортировать БД целиком (со всеми таблицами), то сразу переходите в «Экспорт». Только здесь мы уже оперируем не таблицами, а базами. В «Способ экспорта» также устанавливаем «Обычный». Затем выделяем нужную БД, и в разделе «Вывод» выбираем вариант «Сохранить вывод в файл».
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Получить курс сейчас!Следующим шагом задаем формат, в котором будет сохранена копия базы. Выбираем в соответствующем списке значение «SQL». Это будет гарантом того, что копию можно будет использовать на большей части платформ. Но если собираетесь переносить базу на конкретную основу, то здесь можно выбрать соответствующий формат: массив PHP, CSV, PDF и другие.
Ниже в разделах «Параметры формата» и «Параметры сохранения данных» можно настроить более «профессиональные» параметры для переноса базы MySQL. Но мы не будет подробно останавливаться на их обзоре. Если вы не знакомы с какими-либо из них, то лучше не менять (без необходимости) установленные значения по умолчанию. Здесь можно настроить максимальную совместимость со старыми версиями СУБД и как будут сохранены таблицы. Можно экспортировать только данные или структуры. Мы скопируем таблицы полностью (вариант «структура и данные).
После установки всех параметров для создания копии базы нажимаем внизу «Ок». В результате мы получаем дубликат БД, который легко перенести на другой сервер. По умолчанию созданный файл сохраняется в папке загрузок вашего браузера.
Импортируем
С помощью phpMyAdmin можно не только создавать копии всего сервера, баз и отдельных таблиц. Программа позволяет легко перенести данные MySQL на другой экземпляр СУБД. Выполнение этого процесса во многом схоже с экспортом базы. phpMyAdmin «умеет» присоединять как отдельные таблицы к базе, так и сразу несколько БД к серверу. Для присоединения таблиц слева в списке выберите нужную базу, и затем переходите по вкладке «Импорт».
Чтобы присоединить к серверу базу (или несколько баз), сразу переходите по указанной вкладке. Затем в разделе «Импортируемый файл» отмечаем пункт «Обзор вашего компьютера», и через проводник указываем месторасположение файла БД.
Здесь нужно указать кодировку, в которой представлены данные в импортируемом источнике. С этим параметром следует быть аккуратнее, иначе вместо строк в таблицах получите настоящие «иероглифы», и для их расшифровки придется нанимать коренного японца или китайца. А с ними в нашей местности – настоящий дефицит .
Чаще всего используется кодировка UTF-8, которая и установлена по умолчанию. Поэтому, даже если не знаете точно, какая используется в переносимой базе MySQL, то стоит попробовать данную кодировку. В любом случае вы всегда сможете удалить импортированную базу, и затем «перезалить» ее с другой кодировкой.
Также спешу огорчить «рьяных» поклонников phpMyAdmin. Данная утилита подходит только для экспорта-импорта небольших баз (до 2 «метров»). Этого значение вполне хватает для частичного (поэтапного) переноса сервера, что может быть не совсем удобно и затянуть надолго весь процесс.
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Получить курс сейчас!В разделе «Формат» устанавливаем значение «SQL». Если нужно, то включаем режим совместимости. А также отключаем автоматическое создание значения ключа для столбцов с нулевым значением (зависит от структуры таблиц импортируемого источника). И для окончания импорта жмем «Ок».
Если собираетесь перенести базу данных MySQL из бэкапа, то не забудьте перед началом импорта удалить с сервера «оригинал» источника. Иначе получите сообщение об ошибке, поскольку данная БД уже существует.
Если процесс прошел удачно, то система программы выведет соответствующее сообщение.
Альтернативное ПО
Я обещал по ходу изучения MySQL знакомить вас с различным программным обеспечением для администрирования СУБД. Так вы сможете расширить свой «профессиональный» кругозор, и выбрать ту программу, которая больше всего подходит под ваши потребности и род деятельности.
Сегодня мы протестируем возможности переноса MySQL с помощью мощного многофункционального приложения, разработанного создателями СУБД. Скачать MySQL Workbench можно с официального ресурса компании. Тут же детально описаны несколько сторонних дистрибутивов (и ссылки на них), которые потребуются для администрирования СУБД с помощью данной платформы.
Повторюсь еще раз: рассматриваемое средство обладает мощным функционалом, поэтому мы рассмотрим лишь тот, который предназначен для импорта-экспорта отдельных баз в формате SQL. Для этого запускаем программу, жмем по иконке нужного соединения (если их несколько).
В новом раскрывшемся окне слева в панели «Navigator» выбираем нужную вкладку (для экспорта или импорта). Я импортирую дубликат базы, созданный с помощью phpMyAdmin.
Чтобы осуществить перенос данных MySQL, переходим через пункт «Data Import». В одноименной вкладке в разделе «Import Options» выбираем второй вариант (обозначен на снимке).
Так как у нас никаких схем нет, то внизу нажимаем на «Start Import». В соседней вкладке «Import Progress» отображается состояние процесса переноса указанного файла. Эта опция может пригодиться при импорте больших объемов данных.
После окончания переноса MySQL в списке баз у нас появится db1, дубликат которой мы создали с помощью phpMyAdmin.
Ну, а пока я «прятал» свою БД MySQL, все родственники разъехались. Так как я был занят, а пополнять продуктовую базу холодильника было некому. Вот как любимая СУБД спасла меня от «родственной» напасти. За что ей огромное спасибо .
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Получить курс сейчас!Хотите изучить MySQL?
Посмотрите курс по базе данных MySQL!
Смотретьwebformyself.com
Копирование баз данных mysql с одного компьютера на другой — mysql
Как скопировать базу данных Mysql с одного компьютера на другой/резервную копию базы данных с помощью mysqldump
- Мы можем перенести базу данных MySQL с одного компьютера на другой, используя команда mysqldump.
Мы должны создать файл дампа базы данных для передачи базы данных из один компьютер на другой компьютер.
База данных MySQL не является переносимой базой данных, т.е. мы не можем ее перенести с одного компьютера на другой, скопировав и вставив его.
Мы можем использовать следующий метод для передачи базы данных.
Создание файла дампа из базы данных/Создание резервной копии базы данных MySQL:
Откройте командную строку.
Выполните следующие команды, чтобы изменить каталог
c: «нажмите ввод»
программные файлы cd/MySQL/MySQL Server 5.1/bin «нажмите ввод»
mysqldump -u root -p database_name > database_name.sql ‘press enter’
Введите пароль: пароль MySQL
Скопируйте файл sql и вставьте его на ПК, куда вы хотите перенести базу данных.
2. Dumping sql file into database:-
- Open MySQL command line client command prompt.
- Execute following command to create database.
создать базу данных database_name;
‘нажмите enter’ Имя базы данных должно совпадать с именем вашей базы данных.
Скопируйте этот файл sql в папку ‘c: /program files/MySQL/MySQL Server 5.1/bin’
*- Now open command prompt and execute following commands.* >C: 'press enter' >cd program files/MySQL/MySQL Server5.1/bin 'press enter' >mysql –u root –p database_name < database_name.sql 'press enter' Your database is created on PC. Now in MySQL command prompt check your database.
Еще один: 1
Это лучший и простой способ — использовать инструменты db (SQLyog)
http://www.webyog.com/product/downloads
С помощью этих инструментов вы можете подключить 2 сервера баз данных и просто скопировать одну базу данных на сервере a на сервер b.
Для получения дополнительной информации
http://faq.webyog.com/content/12/32/en/mysql-5-objects-are-greyed-out-in-copy-db-to-other-host-dialogue.htmlenter описание изображения здесь
Для базы данных с именем «lbry» попробуйте следующее:
mysqldump -u root -p lbry > dump-lbry.sql
Создайте базу данных с тем же именем (в данном примере «lbry») на компьютере, на который вы хотите скопировать содержимое базы данных.
Затем импортируйте его:
mysql -u root -p lbry < dump-lbry.sql
jmail источник
поделитьсяqaru.site
❶ Как скопировать базу mysql 🚩 mysql копирование базы 🚩 Программное обеспечение
Инструкция
Используйте функцию экспортирования таблиц, чтобы получить cодержимое исходной базы данных в виде инструкций языка SQL. Для этого, загрузив интерфейс phpMyAdmin и авторизовавшись на SQL-сервере, хранящем исходную базу, перейдите в нее, щелкнув соответствующую ссылку в левом фрейме. Затем кликните по ссылке «Экспорт» в правом фрейме.
Щелкните по ссылке «Выделить все», помещенной над списком таблиц этой базы в секции «Экспорт» правого фрейма интерфейса приложения. В секции «Параметры» все настройки можно оставить в том виде, в котором phpMyAdmin их расставляет по умолчанию. Если объем данных, хранимых таблицами этой базы, очень велик, то для переноса лучше использовать файлы — поставьте отметку рядом с надписью «Сохранить как файл». Без этой отметки экспортируемые данные приложение поместит в многострочное текстовое поле, из которого его можно просто скопировать, а затем вставить в соответствующее поле на SQL-сервере назначения. Нажмите кнопку «OK», и программа составит и отправит нужные запросы, а затем либо предложит сохранить файл с экспортируемыми данными, либо отобразит их в соответствующем поле на следующей загруженной странице.
Авторизуйтесь в аналогичном интерфейсе приложения phpMyAdmin на том SQL-сервере, куда надо поместить переносимую базу данных. Сделайте это в новой вкладке браузера, если данные предполагается переносить методом «скопировать/вставить». Введите название базы данных в поле «Новая база данных» и нажмите кнопку «Создать». Программа отправит запрос, исполнив который сервер создаст пустую базу данных с указанным именем, сообщит об этом приложению, а оно откроет страницу пустой пока базы.
Используйте функцию импортирования для создания в этой базе копий исходных таблиц и хранящихся в них данных, если перенос осуществляется с помощью файлов. Щелкнув по вкладке «Импорт» в правом фрейме вы откроете форму, в которой нужно нажать кнопку «Обзор», отыскать созданный при экспортировании данных файл, а затем нажать кнопку «OK». Приложение загрузит на сервер содержащиеся в файле инструкции, а после того как они будут исполнены, обновит страницы, выведя в левом фрейме список созданных таблиц, а в правом — более подробную информацию о них.
Вместо предыдущего шага щелкните по вкладке SQL, если перенос осуществляется без использования промежуточных файлов. Затем переключитесь в ту вкладку браузера, где у вас открыта форма с SQL-инструкциями экспортированных данных, выделите и скопируйте их. Переключившись обратно вставьте все скопированное в поле под надписью «Выполнить SQL-запрос(ы) к базе данных» и нажмите кнопку «OK». Приложение отправит запросы на сервер, тот создаст таблицы, заполнит их данными и вернет отчет о результатах. PhpMyAdmin покажет вам этот отчет и обновит информацию о содержимом теперь уже не пустой базы данных.
www.kakprosto.ru
MySQL: как сделать backup (резервную копию) базы данных
Задача: сделать резервную копию базы данных или всех баз данных сервера MySQL.- Остановить сервер MySQL и просто скопировать базы
- Сделать бекап на-лету (без остановки сервера MySQL)
Каждый метод, очевидно, имеет свои плюсы и минусы. Так, для выполнения бекапа «на-лету» требуется знать логин-пароль пользователя, имеющего права на резервное копирование базы данных и итоговый файл бекапа будет несколько больше, чем если просто базу скопировать.
С другой стороны, при копировании на-лету не нужно останавливать сервер MySQL (что, очевидно, создало бы отказ в обслуживании на время бекапа) и не нужно знать путь к базам данным на сервере. И еще один момент — не всегда название базы = название ее каталога в файловой системе!
Путь первый: грамотно сделаем бекап на-лету
Для этого нам понадобится утилита «mysqldump». Она идет в комплекте с самим сервером MySQL. Вот пример вызова это утилиты:
$ mysqldump -u root -p mydatabase > mydatabase.bak
В этом примере мы используем утилиту под пользователем root (параметр -p указывает, что нужно запросить пароль для пользователя) для создания резервной копии базы данных под названием «mydatabase». Результат бекапа будет записан в виде дампа SQL в файл mydatabase.bak
Как видно — таким образом мы сделали бекап отдельно взятой базы данных. А в следующем примере сделаем бекап всех баз, находящихся на сервере. При этом имейте в виду, что:
- все базы данных будут вывалены в один файл, который, при их большом суммарном объеме, превратится просто в огромную глыбу дампа;
- нам нужно выполнять бекап из-под пользователя, который имеет право доступа ко всем базам данных — тобишь — из-под root или его аналога.
$ mysqldump -u root -p —all-databases > alldatabases.bak
В этом примере все базы будут вывалены в дамп под названием alldatabases.bak
А теперь сделаем бекап двух или более баз. В нашем примере две БД (mydatabase1 и mydatabase2) будут забекаплены в один файл mydatabases.bak
$ mysqldump -u root -p —databases mydatabase1 mydatabase2 > alldatabases.bak
Делаем бекап на-лету — все базы, но каждую базу в свой файл
Техника не моя — взята с сайта itblog.su и подправлена.
Для этого пишем скриптик с вот таким содержанием:
#!/bin/sh
for i in `mysql -u root -pMysuperpassword -e’show databases;’ | grep -v information_schema | grep -v Database`; do mysqldump -u root -pMysuperpassword $i > $i.bak; gzip -f $i.bak;done
Здесь вместо -pMysuperpassword подставьте правильный пароль root (-p, т.е. -p и слитно — пароль).
Ключик -f в gzip заставляет его перезаписывать уже существующие файлы без вопроса «Вы уверены?».
Не забудьте сделать скрипт исполняемым.
В данном случае будет произведен бекап всех баз MySQL сервера, но по-отдельности и без остановки сервера. Каждая база будет положена в свой файл с называнием базы + расширение bak, а потом этот файл еще и будет сжат gzip ( + .gz).
Вот что мы получим (пример):
mydatabase1.bak.gz
mydatabase2.bak.gz
…
Где вместо mydatabase1 и т.д. будут имена баз данных (именно имена баз данных, а не имена каталогов, в которых эти базы хранятся).
Путь второй: тупо загасим MySQL и скопируем
Теперь менее популярная метода — загасить работу MySQL сервера и банально скопировать базы. Дело в том, что все базы MySQL хранит просто в каталогах, в каждом из которых есть набор из файлов таблиц. Тобишь нам достаточно упаковать каталог нужной базы в tar-файл во время выключенного сервера MySQL — и дело в шляпе.
Итак, гасим сервер.
для Debian/ubuntu:
$ sudo /etc/init.d/mysql stop
для CentOS/redhat:
$ sudo /etc/init.d/mysqld stop
для FreeBSD:
$ sudo /usr/local/etc/rc.d/mysql-server stop
Копируем. Переходим в каталог с базами данных MySQL и создаем файл tar для нужной базы.
# tar -cf mydatabase.bak.tar mydatabase
В данном примере предполагается, что база данных назвается mydatabase. Вам нужно указывать название каталога той базы, которую Вы бекапите. Ну и результат появится в виде одного файла mydatabase.bak.tar
для Debian/ubuntu:
$ sudo /etc/init.d/mysql start
для CentOS/redhat:
$ sudo /etc/init.d/mysqld start
для FreeBSD:
$ sudo /usr/local/etc/rc.d/mysql-server start
Гыы, а я сделал бекап копированием без остановки MySQL и у меня получилось
Это не «гыы», это «ай-ай-ай», ибо все хорошо, пока эти базы не меняются часто. При интенсивном использовании Вы можете угадать так, что файл будет копироваться во время изменения и… короче, можете этот бекап потом выкинуть, причем о том, что он косячный Вы, скорее всего, не узнаете до самого момента «ой».
Как перенести базу данных MySQL между двумя серверами?
Миграция базы данных MySQL обычно требует всего лишь нескольких простых шагов, но может занять довольно много времени, в зависимости от объема данных, которые вы хотите перенести.В следующих шагах вы узнаете, как экспортировать базу данных MySQL со старого сервера, защитить ее, скопировать на новый сервер, успешно импортировать и убедиться в наличии данных.
Экспорт базы данных MySQL в файл дампа
Oracle предоставляет утилиту с именем mysqldump, которая позволяет легко экспортировать структуру базы данных и данные в файл дампа SQL. Используйте следующую команду:
mysqldump -u root -p --opt [database name] > [database name].sql
Несколько заметок:
- Мы используем флаг –single -action, чтобы избежать блокировки базы данных при экспорте данных . Это позволит вам продолжить обновление данных в вашей старой базе данных при экспорте файла дампа. Обратите внимание, что новые данные, которые будут обновлены после того, как процесс экспорта уже запущен, не будут доступны в экспортированном файле дампа.
- Обязательно замените [database name] реальным именем базы данных перед запуском команды.
- Не забудьте ввести свои учетные данные пользователя вместо «user» и «Password» в команде. Убедитесь, что у пользователя есть разрешения на резервное копирование базы данных.
Защитите файл резервной копии
В большинстве случаев данные организации являются ее наиболее важным активом. Поэтому мы не хотим, чтобы резервные копии баз данных оставались на наших серверах незащищенными, поскольку они могут по ошибке утечь или, что еще хуже, быть украденными хакерами.
Поэтому при первом удобном случае давайте сжимаем и шифруем файл и удаляем исходный файл. Чтобы зашифровать файл в сжатый файл в операционных системах Linux, используйте эту команду:
zip --encrypt dump.zip db.sql
Вам будет предложено ввести пароль до начала сжатия.
Перенести файл резервной копии
Теперь, когда у нас есть зашифрованный файл дампа, давайте перенесем его по сети на новый сервер, используя SCP:
scp /path/to/source-file user@host:/path/to/destination-folder/
Импортируйте дамп MySQL на новый сервер
Теперь, когда у нас есть файл резервной копии на новом сервере, давайте расшифруем и распакуем его:
unzip -P your-password dump.zip
После того, как файл импортирован, не забудьте удалить файл дампа как для хранения, так и из соображений безопасности.
Чтобы импортировать файл, используйте следующую команду:
mysql -u root -p newdatabase < /path/to/newdatabase.sql
Проверить импортированные данные на новом сервере
Теперь, когда у нас есть база данных, импортированная на новый сервер, нам нужен способ убедиться, что данные действительно есть, и мы ничего не потеряли.
Мы рекомендуем начать с выполнения этого запроса как для старой, так и для новой базы данных и сравнить результаты.
Запрос подсчитает количество строк во всех таблицах, что обеспечит указание количества данных в обеих базах данных.
SELECT TABLE_NAME, TABLE_ROWS FROM `information_schema`.`tables` WHERE `table_schema` = 'YOUR_DB_NAME';
Кроме того, мы рекомендуем проверять записи MIN и MAX столбцов в таблицах, чтобы убедиться, что действительными являются сами данные, а не только объем данных.
Еще, перед переносом самого приложения мы рекомендуем перенаправить один экземпляр приложения в новую базу данных и убедиться, что все работает правильно.
Еще один вариант экспорта и импорта
Мы сохранили эту опцию до конца, так как не очень рекомендуем работать с ней.
Кажется, это намного проще, так как он будет экспортировать, передавать файл дампа и импортировать данные в новую базу данных, все в одной команде.
Недостатком является то, что если сетевое соединение прекратится, вам нужно начать все сначала.
Поэтому мы считаем, что с этой командой работать не рекомендуется, особенно с большой базой данных.
Если вы все равно хотите попробовать, используйте эту команду:
mysqldump -u root -pPassword --all-databases | ssh user@new_host.host.com 'cat - | mysql -u root -pPassword'
Важные заметки
- Убедитесь, что оба сервера MySQL установлены с одинаковым официальным дистрибутивом и версией. В противном случае вам нужно будет следовать инструкциям по обновлению с веб-сайта MySQL.
- Убедитесь, что на вашем старом сервере достаточно места для файла дампа и сжатого файла (2 x db_size => free).
- Убедитесь, что на вашем новом сервере достаточно места для хранения зашифрованного файла дампа, дешифрованного файла дампа и импортированной базы данных (3 x db_size => free).
- Если вы когда-нибудь задумывались о переносе datadir из одной базы данных в другую, пожалуйста, не делайте этого. если вы не хотите связываться с внутренней структурой базы данных, так как это, скорее всего, вызовет проблемы в будущем.
- Не забудьте настроить важные флаги, такие как innodb_log_file_size, в конфигурации вашего нового сервера. Если забыть обновить конфигурацию в соответствии со спецификациями нового сервера, это может привести к серьезным проблемам с производительностью.
Наслаждайтесь вашим новым сервером!
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
andreyex.ru
Копирование баз mysql между серверами. Как не больно? [Архив]
Напиши, пожалуйста, тоже интересноОба сервера должны быть соединены между собой, желательно кабелем, либо оба должны быть подключены к Интернету, если они на разных датацентрах. У вас должен быть доступ к обеим серверам через SSH.
Я делал так:
1. На новом сервере из под phpMyAdmin создал точно такие же базы(с теми же именами) и точно такого же юзера с тем же паролем, как и на старом сервере. Присвоил этому юзеру эти базы с теми же привелегиями(All, Grant — «No»). /Естественно, эти процедуры можно выполнить и без phpMyAdmin, напрямую в mysql> или mysqladmin/
2. Зашел на старый сервер под SSH(я юзаю putty.exe) как root. Если до этого новый сервер не был добавлен в список «known host», надо выполнить команду >ssh новый_сервер(IP или имя хоста). SSH попробует соедениться с новым сервером, попросит принять их publik_key, спросит root password и добавит новый сервер в список известных хостов. На новом сервере SSH должна быть настроена на работу с root напрямую, а не через su(супер юзера). Если вы вошли на новый сервер после этого, то все ok.
Сразу можете посмотреть путь где MySQL держит базы на новом сервере. Обычно /var/lib/mysql/. Там вы должны найти директории, которые mySQL создала для каждой базы, котоые вы создали через phpMyAdmin. Запишите этот путь — он будет нужен.
3. Выходите с нового сервера(exit — вы находитесь в SSH) и идете в директорию на старом сервере, где у вас лежат файлы mySQL. Обычно это тоже /var/lib/mysql/. Убеждаетесь, что там есть директории с именами ваших баз.
4. Теперь копируете файлы баз со старого сервера на новый командой:
rsync -rtzlvpog /путь/от/куда/ xxx.xxx.xxx.xxx:/путь/куда/
или(для стандартного расположения mySQL):
rsync -rtzlvpog /var/lib/mysql/имя базы(директории) xxx.xxx.xxx.xxx:/var/lib/mysql/имя базы(директории)
Пример:
rsync -rtzlvpog /var/lib/mysql/users_basa 101.122.45.212:/var/lib/mysql/users_basa
если соединение установлено, то еще вас спросят roor password для удаленного сервера. Если выскакивает ошибка, то надо соединится с удаленным сервером, как я писал выше, через ssh, чтобы добавить удаленный сервер в список known host.
После копирования меняете во всех скриптах, где вы коннектитесь к mySQL хост с ‘localhost’ на IP адрес(или имя хоста) нового сервера. Перед этой заменой потестируйте вручную через какой-нибудь тестовый скриптик.
Чтобы избежать потери данных добавленных в базу в момент копирования вы можете остановить MySQL или Apache или просто в программе отключить запись в MySQL на старом сервере.
Программа rsync с этими ключами -rtzlvpog при повторном копировании, проверяет изменились ли файлы source. Если не изменились, то она их не копирует.
searchengines.guru
Как сделать резервную копию серверной базы данных MySQL
Бэкап баз данных MySQL в Linux
Если вы используете сервер MySQL с важной информацией, у вас может возникнуть желание периодически делать резервные копии баз данных. Инструмент командной строки Linux под названием mysqldump позволяет вам забэкапить базы данных MySQL без необходимости останавливать MySQL сервер. mysqldump на выходе генерирует текстовый файл, содержащий серию MySQL команд, которые представляют текущий снимок баз данных, которые были подвергнуты резервному копированию. Полученный на выходе mysqldump файл, может быть с лёгкостью сжат и/или зашифрован, если в этом есть необходимость.
В этом уроке я опишу как сделать резервную копию MySQL сервера с помощью mysqldump.
Программа mysqldump содержится в клиентском пакете MySQL. Поэтому, в первую очередь нужно установить клиентский пакет.
Для установки mysqldump на Ubuntu, Debian или Mint:
$ sudo apt-get install mysql-client
Для установки mysqldump на CentOS, Fedora или RedHat:
$ sudo yum install mysql
Чтобы сгенерировать онлайн снимок живого MySQL сервера, вам нужно предотвратить любые обновления его баз данных во время процедуры создания резервной копии. Как добиться этого зависит от системы хранения, которое вы используете внутри для MySQL таблиц. Поэтому в первую очередь выясните, какую систему хранения (например, MyISAM, Innodb) вы используете. Эта инструкция расскажет вам как.
Резервное копирование баз данных InnoDB
Если все ваши MySQL используют InnoDB, вы можете использовать опцию «–single-transaction» с mysqldump для создания онлайн бэкапа:
$ mysqldump -h[server-ip-address] -u[username] -p[password] --all-databases --single-transaction > backup.sql
Обратите внимание, что в вышеприведённой mysqldump команде нет пробелов между опциями аргументов (например, -h, -u, -p) и самими величинами аргумента (например, server-ip-address, username, password).
Резервные копии баз данных MyISAM или InnoDB/MyISAM
Приведённая выше команда, тем не менее, не работает, если вы используете таблицы MyISAM или смесь таблиц InnoDB/MyISAM, поскольку MyISAM не поддерживает транзакции. В этом случае вам нужно явным образом заблокировать все таблицы на время проведения резервного копирование. Как это сделать показано ниже.
mysql> flush tables with read lock;
Вышеприведённый MySQL оператор flush закрывает все открытые таблицы в сервере MySQL и получает блоки чтения всех таблиц во всех существующих базах данных, тем самым предотвращая любые записи в базы данных. Это обеспечивает последовательных снимок запущенной системы. Теперь продолжайте выполнять резервное копирование.
$ mysqldump -h[server-ip-address] -u[username] -p[password] --all-databases > backup.sql
По окончании снимите глобальную блокировку баз данных.
mysql> unlock tables;
Бэкап баз данных MySQL в Widnows
Пользователи Widnows тоже люди и у них тоже возникает потребность в создании резервных копий. Красота использования кроссплатформенных программ в том, что синтаксис команд (если это консольное приложение) или внешний вид интерфейса (если он есть) одинаковые. Т.е. не нужно изучить две разные программы.
Файл в Widnows называется mysqldump.exe, лежит в подкаталоге bin корневого каталога MySQL. При запуске из командной строки нужно прописывать полный путь до файла. Например, у меня этот файл размещён в папке C:Serverbinmysql-5.6bin, следовательно моя команда (запускаю в командной строке — Win+X и там выбрать «Командная строка»):
C:Serverbinmysql-5.6binmysqldump.exe -h[server-ip-address] -u[username] -p[password] --all-databases --single-transaction > backup.sql
Если делаете на локальном компьютере, то -h[server-ip-address] можно пропустить.
Для файла backup.sql тоже можно указать абсолютный путь, чтобы потом не пришлось искать его по всему Widnows. Если абсолютный путь не указан, и если командная строка запущена не от имени администратора, то файл по умолчанию будет размещён в корне пользовательского каталога.
Например, у меня файл появился в папке C:UsersAlex
Если командная строка запущена от имени администратора, то файл появится в каталоге C:WindowsSystem32
codeby.net