Mysqldump деген эмне жана аны кантип колдоном?

Мазмуну:

Mysqldump деген эмне жана аны кантип колдоном?
Mysqldump деген эмне жана аны кантип колдоном?
Anonim

Эркин жеткиликтүү маалымат базаларынын бири катары MySQL көптөгөн веб-тиркемелер үчүн популярдуу тандоо. Интернетке туш болуп, колдонмоңуз зыяндуу чабуулдарга дуушар болот. Эгерде сиздин сервериңиз бузулса, эң жакшысы, колдонмону кайра орнотуу керек; эң жаманы, маалыматыңызды жоготуп алышыңыз мүмкүн. Мындан тышкары, сиз маалымат базасын бир серверден экинчисине көчүрүү керек болгон кырдаалга туш болушуңуз мүмкүн.

mysqldump эмне үчүн колдонулат?

Mysqldump куралы сизди сервердин компромисстик жана миграциялык жагдайларын камтыйт. Анын негизги милдети MySQL маалымат базасын алып, аны тексттик файл катары чыгаруу. Бирок эч кандай текст файлы эмес; файл SQL билдирүүлөрүнүн жыйындысы. Бул билдирүүлөр аткарылгандан кийин, маалымат базасы таштанды аткарылгандагы так абалына келтирилет.

Маалымат базасын резервдик көчүрмө катары экспорттоо үчүн же маалымат базасын жаңы хостко жылдырууда mysqldump колдонуңуз. Кандай болбосун, текст файлы кайра MySQL маалымат базасы серверине импорттолот. Ал файлдагы бардык SQL билдирүүлөрүн аткарат, ал маалымат базасын баштапкы абалына келтирет. Бул бөлүк mysqldump буйругун колдонбойт, бирок бул утилитасыз да мүмкүн эмес.

MySQL документтеринде камдык көчүрмөлөрдү жасоонун башка ыкмалары тизмеленген, бирок алардын кемчиликтери бар:

  • MySQL Enterprise'тен берилиштер базасынын Hotcopy - бул камдык көчүрмөлөргө жетишүүнүн эң сонун жолу - эгер Enterprise баасынын тегине каршы болбосоңуз.
  • Маалыматтар базасынын маалымат каталогдорун көчүрүү операциялык тутумдар боюнча жылганда татаал болушу мүмкүн, анткени көздөгөн жерлер ар башка болот.
  • Бөлүнгөн текст файлына экспорттоо мазмунду берет, бирок түзүмүн кайра түзүшүңүз керек болот.
  • Сиз көп учурда MySQL Workbench сыяктуу GUI программаларынан маалымат базаларынын камдык көчүрмөсүн сактай аласыз. Бирок бул кол менен жасалган процесс; скрипт кылып же пакеттик ишке киргизе турган нерсе эмес.

mysqldump куралын орнотуу

Windows үчүн, MySQLди Windows 7ге орнотуу боюнча нускамаларыбызды текшериңиз (орнотуу процесси Windows 10 үчүн бирдей). macOS'то, MySQLди macOS 10.7ге орнотуу боюнча биздин көрсөтмөлөрдү караңыз (кайрадан, эски, бирок дагы эле жарактуу). Ubuntu негизиндеги Linux системаларынын колдонуучулары MySQL кардарын жана утилиталарын орнотуу үчүн төмөнкү буйрукту колдоно алышат:

sudo apt mysql-client орнотуу

MySQL таштандысын чыгарып алыңыз

Орнотулгандан кийин, маалымат базасынын толук камдык көчүрмөсүн алуу үчүн mysqldump колдонуңуз.

mysqldump -h [МБ хостуңуздун аты же IP] -u [МБ колдонуучунун аты] -p [деректер базасынын аталышы] > db_backup.sql

Бул буйрукта колдонулган желектердин сүрөттөмөсү:

  • - h: Бул желек маалымат базасынын хосту. Бул толук хост аты (мисалы, myhost.domain.com) же IP дареги болушу мүмкүн. Эгер буйрукту MySQL сервери менен бир хостто иштетсеңиз, бул жерди бош калтырыңыз.
  • - u: Колдонуучу атыңыз.
  • - p: Эгер MySQL орнотууну туура коргосоңуз, туташуу үчүн сырсөз керек болот. Аргументсиз бул желек сизден буйрукту аткарганда сырсөздү сурайт. Кээде бул желекчеге аргумент катары сырсөздү түздөн-түз берүү пайдалуу болот, мисалы, резервдик скриптте. Бирок эскерткенде андай кылбаңыз, анткени кимдир-бирөө сиздин компьютериңизге кирүү мүмкүнчүлүгүнө ээ болсо, алар бул сырсөздү буйруктар таржымалынан алышы мүмкүн.
  • > db_backup.sql: Бул бөлүк mysqldumpга анын чыгарууну файлга багыттоосун айтат. Адатта, буйрук баарын консолго чыгарат, демек экранда бир нече SQL билдирүүлөрүн көрөсүз. > символу чыгарууну аталган текст файлына өткөрөт. Эгер бул файл жок болсо, ал автоматтык түрдө түзүлөт.

Ал бүткөндө, сизде. SQL файлы болот. Бул SQL билдирүүлөрүн камтыган текст файлы. Мазмунду текшерүү үчүн аны каалаган текст редакторунда ачсаңыз болот. Бул жерде бул файлдар кантип бириктирилгенин көрсөткөн WordPress маалымат базасынан экспортто.

Image
Image

Файл бөлүктөргө бөлүнгөн. Биринчи бөлүм WordPress комментарийлери үчүн үстөлдү орнотот. Экинчи бөлүм ошол таблицалардагы мазмунду кайра жаратат (бул мисалда комментарий жазуулары). MySQL таштандысын кайра импорттогонуңузда, буйрук файл аркылуу иштейт, билдирүүлөрдү аткарат жана маалымат базасын мурункудай кайра курат.

MySQL дамп файлын импорттоо

Дамп файлын импорттоодон мурун мурунтан эле түзүлгөн маалымат базасы жана анын жарактуу колдонуучу аты менен сырсөзү керек болот. Ошондой эле маалымат базасы үчүн бардык уруксаттарга ээ болушуңуз керек. GRANT уруксатынын кереги жок, бирок алардын баарын берүү оңой.

Базаңыздагы коопсуздук ролдорун өзгөртүүдөн мурун маалымат базасынын уруксаттары жөнүндө көбүрөөк билип алыңыз.

Дайындарыңызды кайра импорттоо үчүн MySQL серверине mysql буйругу менен кириңиз. Ыраска колдонуу [маалымат базасынын аталышы] деп териңиз жана маалымат базасынын атын алмаштырыңыз. булак [файлдын аталышы] киргизип, мурда алган дамп файлынын атын алмаштырыңыз.

Бүткөнүңүздө, SQL операторлору аткарылып жатканын белгилеген билдирүүлөрдүн тизмеси пайда болот. Каталарга көз салыңыз, бирок туура уруксаттарыңыз болсо, жакшы болушуңуз керек.

Image
Image

Процесс аяктаганда, сизде баштапкы базанын дубликаты болот. Берилиштер базаларынын окшоштугун текшерүү үчүн дагы бир таштандыны аткарып, андан кийин эки жыйынтыкты салыштырыңыз. Эки файлды салыштыруу үчүн текст редакторун же атайын айырма куралын колдонуңуз.

Image
Image

Бул файлдардын ортосунда эки айырма бар, алар оң сыдырма тилкесинин үстү жана асты жагында кызыл сызыктар менен көрсөтүлгөн. Биринчиси, маалымат базасынын атын камтыган сап жана бул башка, анткени файлдар башкача аталды. Экинчиси, таштанды файлынын убакыт белгиси. Бул башкача, анткени экинчи маалымат базасы биринчиден кийин кайра түзүлгөн. Болбосо, файлдар так бирдей, башкача айтканда, аларды түзгөн маалымат базалары да.

КБС

    Mysqldump катасын кантип оңдойсуз: Кулпуланган таблицаларды колдонууда кирүүгө тыюу салынды?

    Белгилер базасынын администраторуңуздан LOCK артыкчылыгын берүүсүн сураныңыз. Эгер бул маселени чечпесе, ошол эле mysqldump буйругун - -single-transaction желекчесин кошуп иштетип көрүңүз, мисалы [ $ mysqldump --single-transaction] [-u колдонуучу] [-p DBNAME] > backup.sql

    Сиз mysqldump менен "кайда" сүйлөмүн колдоно аласызбы?

    Берилген шартты аткарган саптарды гана камтыган камдык көчүрмөнү түзүүдө WHERE пунктун колдонуңуз. Мисалы, id мамычасы 100дөн жогору болгон саптардан гана берилиштерди таштоо үчүн "mysqldump my_db_name my_table_name --where="id > 100" > my_backup.sql" деп киргизиңиз.

Сунушталууда: