Mysql
 sql >> база данни >  >> RDS >> Mysql

Урок за архивиране и възстановяване (експортиране и импортиране) на MySQL бази данни

phpMyAdmin може да се използва за лесно експортиране или архивиране на MySQL или MariaDB бази данни. Въпреки това, ако размерът на базата данни е много голям, това вероятно няма да е добра идея. phpMyAdmin позволява на потребителите да запазват дъмпа на базата данни като файл или дисплей на екрана, което включва експортиране на SQL изрази от сървъра и предаване на данните през по-бавна мрежова връзка или интернет към компютъра на потребителя. Този процес забавя процеса на експортиране, увеличава времето за заключване на базата данни и по този начин недостъпността на MySQL или MariaDB, забавя сървъра и може просто да срине Apache HTTPD сървъра, ако твърде много входящи уеб връзки претоварват ресурсите на системата.

По-добрият начин за архивиране и експортиране на база данни на MySQL или MariaDB е като изпълните задачата локално на сървъра, така че данните от таблиците да могат незабавно да бъдат изхвърлени на локалния диск без забавяне. Така скоростта на експортиране ще бъде по-бърза и ще намали времето, в което MySQL или MariaDB база данни или таблица са заключени за достъп. Този урок е ръководство за това как да архивирате (експортирате) и възстановявате (импортирате) MySQL или MariaDB база данни на самия сървър на база данни с помощта на mysqldump и mysql комунални услуги. Основно има два метода за архивиране на MySQL или MariaDB, единият е чрез копиране на всички таблични файлове (*.frm, *.MYD и *.MYI файлове) или чрез използване на mysqlhotcopy помощна програма, но работи само за MyISAM таблици. По-долу урокът ще се съсредоточи върху mysqldump, който работи както за MyISAM, така и за InnoDB таблици.

Как да експортирате или архивирате или изхвърлите MySQL или MariaDB база данни

За да експортирате MySQL или MariaDB база данни в дъмп файл, просто въведете следния команден синтаксис в обвивката. Можете да използвате Telnet или SSH, за да влезете отдалечено в машината, ако нямате достъп до физическата кутия.

mysqldump -u username -ppassword database_name > dump.sql

Заменете потребителско име с валиден потребителски идентификатор на MySQL или MariaDB, парола с валидната парола за потребителя (ВАЖНО:няма интервал след -p и паролата, в противен случай mysqldump ще ви подкани за парола, но ще третира паролата като име на базата данни, така че архивирането няма да бъде неуспешно) и име_на_база_данни с действителното име на базата данни, която искате да експортирате. И накрая, можете да поставите каквото пожелаете име за изходния SQL файл за дъмп, тук е dump.sql .

Цялата информация, таблици, структури и база данни на име_на_база данни ще бъде архивиран в SQL текстов файл с име dump.sql с горната команда.

Как да експортирате само MySQL или MariaDB структури на база данни

Ако вече не се нуждаете от данните в таблиците на базата данни (малко вероятно), просто добавете –no-data превключете, за да експортирате само структурите на таблиците. Например синтаксисът е:

mysqldump -u username -ppassword --no-data database_name > dump.sql

Как да архивирам само данни от MySQL или MariaDB база данни

Ако искате само данните да бъдат архивирани, използвайте –no-create-info опция. С тази настройка дъмпът няма да създаде повторно базата данни, таблици, полета и други структури при импортиране. Използвайте това само ако сте почти сигурни, че имате дублирани бази данни със същата структура, където трябва само да опресните данните.

mysqldump -u username -ppassword --no-create-info database_name > dump.sql

Как да изхвърлите няколко MySQL или MariaDB бази данни в текстов файл

–бази данни опцията ви позволява да посочите повече от 1 база данни. Примерен синтаксис:

mysqldump -u username -ppassword --databases db_name1 [db_name2 ...] > dump.sql

Как да изхвърлите всички бази данни в MySQL или MariaDB сървър

За да изхвърлите всички бази данни, използвайте –all-databases опция и вече не е необходимо да се посочва името на бази данни.

mysqldump -u username -ppassword --all-databases > dump.sql

Как да архивирате онлайн InnoDB таблици

Архивирането на базата данни е неизбежна причина MySQL или MariaDB сървърът да е недостъпен за приложенията, тъй като при експортиране всички таблици придобиват глобално заключване за четене с помощта на FLUSH TABLES WITH READ LOCK в началото на изхвърлянето до края. Така че въпреки че операторите READ могат да продължат, всички оператори INSERT, UPDATE и DELETE ще трябва да се наредят на опашка поради заключени таблици, сякаш MySQL или MariaDB не работи или спира. Ако използвате InnoDB, –единична транзакция е начинът да се сведе до минимум тази продължителност на времето за заключване до почти несъществуваща, сякаш извършвате онлайн архивиране. Работи, като чете двоичните координати на регистрационния файл, веднага щом заключването е придобито, и след това заключването се освобождава незабавно.

Синтаксис:

mysqldump -u username -ppassword  --all-databases --single-transaction > dump.sql

Как да възстановим и импортирам MySQL или MariaDB база данни

Можете да възстановите от phpMyAdmin, като използвате раздела Импортиране. За по-бърз начин качете дъмп файла на сървъра MySQL или MariaDB и използвайте следната команда, за да импортирате базите данни обратно в MySQL или MariaDB сървъра.

mysql -u username -ppassword database_name < dump.sql
Ако искате да се свържете с MySQL или MariaDB сървъри отдалечено на друг сървър, добавете -h име-на-сървъра или-IP-адрес към командата.

Импортирането и експортирането на база данни MySQL или MariaDB не само е важно за възстановяване на данните при бедствие, но също така осигурява лесен начин за мигриране или преместване към друг сървър, като например при смяна на доставчик на уеб хостинг. Въпреки това, имайте предвид, че един често срещан проблем - кодиране на набор от символи. По-новата версия на mysqldump използва UTF8 като свой набор от знаци по подразбиране, ако нищо не е посочено, докато по-старите версии (обикновено по-стари от 4.1) използват Latin1 като набор от знаци по подразбиране. Ако вашата база от знаци е Latin1 и изхвърляте в UTF8 съпоставяне, данните може да се окажат просто боклуци, изкривени или нечетливи (често се случва с блога на WordPress). В този случай използвайте –default-character-set=charset_name опция за задаване на набора от знаци или конвертиране на базата данни в UTF8.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използвайте MySQL релационни бази данни в Ubuntu 10.04 LTS (Lucid)

  2. mysqli_stmt::bind_param():Броят на елементите в низа за дефиниране на типа не съвпада с броя на променливите за свързване

  3. MySQL тригер при събития за вмъкване/актуализация

  4. Свържете се с mysql на Amazon EC2 от отдалечен сървър

  5. Най-добрите MySQL блогове и уебсайтове за администратори на бази данни