Перенос базы данных на хостинг

Все началось с того, что я опять забыл как это надо делать. Не часто приходиться переносить базу с локального хостинга на удаленный. Или даже, с хостинга на хостинг. Пришлось вспоминать и подбирать подходящий вариант из того что предлагает «Google в помощь». Из предложенного выбрал два варианта:

  • С помощью phpMyAdmin
  • Используя доступ по SSH-протоколу.
  1. Создаем дамп базы через phpMyAdmin.
  2. Создаем дамп памяти через командую строку mysqldump.
  3. Наполнение базы через phpMyAdmin
  4. Наполнение базы данных через SSH
  5. Шпаргалка.

1. Создаем дамп базы через phpMyAdmin

Запускаем phpMyAdmin на локальном сервере, вводим логин и пароль, выбираем необходимую базу данных и переходим на вкладку «Экспорт». Оставляем настройки как есть и нажимаем кнопку «Вперед». Нам предложат выбрать место для сохранения и после начнет создаваться файл экспорта (дамп) с расширением .sql.

2. Создаем дамп памяти через командную строку mysql

Выше описанный способ имеет один и очень существенный недостаток. Время выполнения php-скрипта приложения phpMyAdmin ограничено и, если база очень большая, то файл экспорта (дамп) не успеет создаться полностью. К счастью, на локальном сервере вы полноправный хозяин, поэтому пользуемся программой mysqldump, запускаемое через командную строку. Запускаем командную строку (приложение cmd) и вводим команду для выполнения бэкапа необходимой базы:

>mysqldump - u USER -pPASSWORD DATABASE > /path/to/file/dump.sql

Или делаем дамп структуры базы данных и ее таблиц без наполнением последних содержимым:

mysqldump --no-data -u USER -pPASSWORD DATABASE > /path/to/file/scheme.sql

Можно сделать бэкап одной или нескольких таблиц из базы данных:

mysqldump --no-data -u USER -pPASSWORD DATABASE TABLE1 TABLE2 TABLE3 > /path/to/file/tables_dimp.sql

Можно сразу архивировать файл дампа базы данных

>mysqldump - u USER -pPASSWORD DATABASE | gzip > /path/to/file/dump.sql.gz

При создании файла экспорта можно воспользоваться опциями -Q, -c, -e:

  • -Q оборачивает имена обратными кавычками
  • -с делает полную вставку, включая имена колонок
  • -e расширенная вставка, итоговый файл получается меньше
mysqldump -Q -c -e -u USERt -pPASSWORD DATABASE > /path/to/file/dump.sql

Можно посмотреть список имеющихся баз данных:

mysqlshow -u USER -pPASSWORD

Или посмотреть список таблиц в базе:

mysqlshow -u USER -pPASSWORD DATABASE

Возможно, вам потребуется создать базу данных:

mysqladmin -u USER -pPASSWORD create DATABASE

Потом залить созданный дамп в базу туда:

mysql -u USER -pPASSWORD DATABASE < /path/to/file/dump.sql

Большинство локальных установок сервера MySql имеею возможность запускать клиент командной строки MySQL Command Line Client. Одной из возможностей данного клиента является возможность заливки дампа на локальную базу. Для этого:

  • Запускаем MySQL Command Line Client.
  • В окне клиента вводим PASSWORD.
  • Выбираем базу для заливки. База должна быть уже существующей
mysql> use DATABASE
  • Вводим командую строку для заливки базы:
mysql> \. /path/to/file/dump.sql

3. Наполнение базы данных через phpMyAdmin

После переноса файла дампа на удаленный хостинг вам необходимо создать базу данных и залить туда экспортируемые данные. Не останавливаясь на вопросах переноса и создания базы, приступим к заливке через приложение phpMyAdmin, которое вам предоставляет хостинг — компания где вы размещаете свой сайт.

Запускаем phpMyAdmin и переходим к вкладке «Импорт». Оставляем настройки как есть и выбираем файл для импорта базы (как правило с вашего локального компьютера в сжатом виде). Нажимаем ОК и ждем результата загрузки и заливки.

4. Наполнение базы данных через SSH.

Тут нас может ожидать неприятный сюрприз. Во первых, phpMyAdmin имеет ограничение на размер загружаемого файла. Во вторых, время выполнения php-скрипта приложения phpMyAdmin ограничено и, если база очень большая, то база не зальется полностью. Можно попросить отдел работы с клиентами хостинга залить вашу базу, а можно справится самостоятельно через приложение для работы с протоколом SSH — сетевой протокол прикладного уровня, позволяющий производить удаленное управление операционной системой.

Для начала необходимо узнать, есть ли на вашем хостинге SSH. Затем скачать и установить программу-клиента для работы с SSH. (PuTTY, Xshell и много других). Затем ввести в программу клиента имя пользователя, пароль, IP ( все это вам должен предоставить хостинг) и после успешного соединения, ввести в окно клиента командной строки команду :

mysql -uUSERNAME -pPASS BASENAME < /path/to/file/dump.sql

Файл дампа должен быть уже перекачан на хостинг.

5. Шпаргалка.

//работаем из командной строки cmd>
//делаем бэкап
>mysqldump - u USER -pPASSWORD DATABASE > /path/to/file/dump.sql

//создаем бэкап структуры базы без данных
>mysqldump --no-data -u USER -pPASSWORD DATABASE > /path/to/file/scheme.sql

//делаем дамп одной или нескольких таблиц
>mysqldump --no-data -u USER -pPASSWORD DATABASE TABLE1 TABLE2 TABLE3 > /path/to/file/tables_dimp.sql

//создаем бэкап структуры базы без данных и архивируем его - не работает
>mysqldump - u USER -pPASSWORD DATABASE | gzip > /path/to/file/dump.sql.gz

//заливаем бэкап в базу данных
>mysql -u USER -pPASSWORD DATABASE < /path/to/file/dump.sql

//создаем новую базу данных
>mysqladmin -u USER -pPASSWORD create DATABASE

//пользуемся опциями
>mysqldump -Q -c -e -u USERt -pPASSWORD DATABASE > /path/to/file/dump.sql

-Q оборачивает имена обратными кавычками
-с делает полную вставку, вкючая имена колонок
-e расширенная вставка, итоговый файл получается меньше

//смотрим список баз
>mysqlshow -u USER -pPASSWORD


//смотрим список таблиц
>mysqlshow -u USER -pPASSWORD DATABASE

//заливаем через MySQL Command Line Client
1. запускаем MySQL Command Line Client
2. в окне клиента вводим PASSWORD
3. выбираем базу для заливки. База должна быть уже существующей 
mysql> use DATABASE
4. Вводим командую строку для заливки базы
mysql> \. /path/to/file/dump.sql

//работаем с ssh
mysql -uUSERNAME -pPASS BASENAME < /path/to/file/dump.sql

И в заключении, рекомендую писать команды в простом текстовом редакторе, копировать их буфер обмена и вводить в строке клиентов (обычно через правую кнопку мыши , чтобы избежать утомительного введения командной строки заново в случае ошибки). Рад, если был полезен. Готов оказать помощь.

admin@allrecall.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Найти на сайте
Со страниц сайта
Метки
хохмаУмные мыслиармейский юморДела семейныеинформацияфольклорДокторой болитВовочка & kidsВадим ЗверевСтатусы ВКотактеПолитическиеСобрание скороговорокБольшие и малые народностиЗаконы МерфиПро животныхженщиныЗабойный наборПро это...Николай Фоменкоалкоманы-наркоголикиВсякая всякотаБородатые анекдотыВиктор ШендеровичПро услуги и рестораныавтомобилистыТуристы и турыИскусство и киноКозьма ПрутковПро студентовЧерномырдинПро работуОмар ХайямСтатусы про женщин и мужчинВ общественном транспортеПро сумасшедшихСтанислав Ежи ЛецПро ШтирлицаКриминальныеСтас ЯнковскийСмешные статусыДурацкие законыПро юристовпро самолетыПро братковПечалькаХорошие советыМарк ТвенСтатусы про жизньНе та ориентацияНа селеКрасноармейскиеГусары и поручикиДразнилкиИностранные анекдотыСказочныеХрюн МоржовФрансуа де ЛарошфукоЖан-Жак РуссоОхота и рыбалкаЧерный юморЛеди и джентельменыПрограммистыСпортМультяшкиНа бога надейся...БизнесСчиталкиУильям ШекспирГеоргий ФрумкерФрансис БэконШутливая лотереяДикий западРаневскаяПьер Огюстен Карон де БомаршеБедные и богатыеПраздникиДикариСоветы и ответыИсторические анекдотыНикколо МакиавеллиНаполеон БонапартЗагадкиwordpresssongstraditionalpluginпоговоркиЧастушкиbackendmysqljavascripthostingsshajaxphpстатистикапандемиястарость
Больше Меньше
Архивы
Рейтинг@Mail.ru