Mysqldump nədir və onu necə istifadə edirəm?

Mündəricat:

Mysqldump nədir və onu necə istifadə edirəm?
Mysqldump nədir və onu necə istifadə edirəm?
Anonim

Aparıcı sərbəst mövcud verilənlər bazalarından biri kimi MySQL bir çox veb proqramlar üçün məşhur seçimdir. İnternetə məruz qaldığınız üçün tətbiqiniz zərərli hücumlara məruz qalır. Əgər serveriniz pozulubsa, ən yaxşı halda proqramı yenidən quraşdırmalısınız; ən pis halda məlumatlarınızı itirə bilərsiniz. Bundan əlavə, verilənlər bazasını bir serverdən digərinə köçürməli olduğunuz vəziyyətlə üzləşə bilərsiniz.

mysqldump nə üçün istifadə olunur?

mysqldump aləti həm server kompromisləri, həm də miqrasiya vəziyyətlərini əhatə edir. Onun əsas funksiyası MySQL verilənlər bazasını götürmək və onu mətn faylı kimi çıxarmaqdır. Ancaq hər hansı bir mətn faylı deyil; fayl SQL ifadələri toplusudur. Bu ifadələr icra edildikdə verilənlər bazasını zibil yerinə yetirildiyi zaman olduğu dəqiq vəziyyətə yenidən qurur.

Verilənlər bazasının ehtiyat nüsxələri kimi ixracını yaratmaq və ya verilənlər bazasını yeni hosta köçürərkən mysqldump istifadə edin. Hər iki halda mətn faylı yenidən MySQL verilənlər bazası serverinə idxal ediləcək. O, verilənlər bazasını orijinal vəziyyətinə qaytaran fayldakı bütün SQL ifadələrini yerinə yetirəcək. Bu hissə mysqldump əmrindən istifadə etmir, lakin bu yardım proqramı olmadan da mümkün deyil.

MySQL sənədlərində ehtiyat nüsxələri yaratmaq üçün digər üsullar sadalanır, lakin bunların çatışmazlıqları var:

  • MySQL Enterprise-dan verilənlər bazasının qaynar surətini çıxarmaq bu ehtiyat nüsxələrə nail olmaq üçün əla yoldur - əgər Enterprise qiymət etiketinə etiraz etmirsinizsə.
  • Əməliyyat sistemləri arasında hərəkət edərkən verilənlər bazası məlumat qovluqlarını kopyalamaq çətin ola bilər, çünki təyinatlar fərqli olacaq.
  • Ayrılmış mətn faylına eksport etmək sizə məzmun verəcək, lakin siz strukturu yenidən yaratmalı olacaqsınız.
  • MySQL Workbench kimi GUI proqramlarından verilənlər bazalarını tez-tez yedəkləyə bilərsiniz. Lakin bu, əl ilə həyata keçirilən prosesdir; skript edə biləcəyiniz və ya toplu işə daxil edə biləcəyiniz bir şey deyil.

mysqldump alətini quraşdırın

Windows üçün MySQL-i Windows 7-də quraşdırmaq üçün təlimatlarımızı yoxlayın (quraşdırma prosesi Windows 10 üçün eynidir). macOS-da, MySQL-i macOS 10.7-də quraşdırmaq üçün təlimatlarımıza baxın (yenidən köhnə, lakin hələ də tətbiq olunur). Ubuntu əsaslı Linux sistemlərinin istifadəçiləri MySQL müştəri və yardım proqramlarını quraşdırmaq üçün aşağıdakı əmrdən istifadə edə bilərlər:

sudo apt install mysql-client

MySQL Dump çıxarın

Quraşdırıldıqdan sonra verilənlər bazasının tam ehtiyat nüsxəsini əldə etmək üçün mysqldump istifadə edin.

mysqldump -h [DB hostunuzun adı və ya IP] -u [DB istifadəçisinin adı] -p [verilənlər bazası adı] > db_backup.sql

Bu əmrdə istifadə olunan bayraqların təsviri:

  • - h: Bu bayraq verilənlər bazası hostudur. Bu, tam host adı (məsələn, myhost.domain.com) və ya IP ünvanı ola bilər. Əgər əmri MySQL serveri ilə eyni hostda işlədirsinizsə, bunu boş buraxın.
  • - u: İstifadəçi adınız.
  • - p: MySQL quraşdırılmasını düzgün təmin etmisinizsə, qoşulmaq üçün sizə parol lazımdır. Heç bir arqumenti olmayan bu bayraq əmri yerinə yetirərkən sizdən parol tələb edir. Bəzən parolu birbaşa bu bayrağın arqumenti kimi, məsələn, ehtiyat skriptdə təqdim etmək faydalıdır. Ancaq sorğuda bunu etməməlisiniz, çünki kimsə kompüterinizə giriş əldə edibsə, bu parolu əmr tarixçəsində əldə edə bilər.
  • > db_backup.sql: Bu hissə mysqldump-a öz çıxışını fayla yönləndirməyi bildirir. Normalda, komanda hər şeyi konsola çıxarır, yəni ekranda bir neçə SQL ifadəsini görəcəksiniz. > simvolu çıxışı adlandırılmış mətn faylına çevirir. Bu fayl mövcud deyilsə, o, avtomatik yaradılmışdır.

Bitdikdə. SQL faylınız olacaq. Bu, SQL ifadələrini ehtiva edən mətn faylıdır. Məzmunu yoxlamaq üçün onu istənilən mətn redaktorunda aça bilərsiniz. Bu, bu faylların necə birləşdirildiyini göstərən WordPress verilənlər bazasından ixracdadır.

Image
Image

Fayl bölmələrə bölünür. Birinci bölmə WordPress şərhləri üçün cədvəl yaradır. İkinci bölmə həmin cədvəllərdəki məzmunu yenidən yaradır (bu nümunədə şərh qeydləri). MySQL zibilini yenidən idxal etdiyiniz zaman əmr faylda işləyir, ifadələri yerinə yetirir və verilənlər bazasını əvvəlki kimi yenidən qurur.

MySQL Dump Faylını Import

Damp faylını idxal etməzdən əvvəl sizə artıq yaradılmış verilənlər bazası və onun etibarlı istifadəçi adı və parolu lazımdır. Siz həmçinin verilənlər bazası üçün bütün icazələrə sahib olmalısınız. GRANT icazəsinə ehtiyacınız yoxdur, lakin onların hamısını vermək daha asandır.

Verilənlər bazanızda təhlükəsizlik rollarını dəyişməzdən əvvəl verilənlər bazası icazələri haqqında ətraflı öyrənin.

Məlumatlarınızı yenidən idxal etmək üçün mysql əmri ilə MySQL serverinə daxil olun. Sorğuda istifadə [verilənlər bazası adı] yazın və verilənlər bazasının adını əvəz edin. mənbə [fayl adı] daxil edin və əvvəl götürdüyünüz zibil faylının adını əvəz edin.

Bitirdiyiniz zaman SQL ifadələrinin icra edildiyini bildirən mesajların siyahısı görünür. Səhvlərə diqqət yetirin, lakin düzgün icazələrə sahibsinizsə, yaxşısınız.

Image
Image

Proses başa çatdıqda, orijinal verilənlər bazasının dublikatına sahib olacaqsınız. Verilənlər bazası arasındakı oxşarlığı yoxlamaq üçün başqa bir boş altma həyata keçirin və sonra iki çıxışı müqayisə edin. İki faylı müqayisə etmək üçün mətn redaktoru və ya xüsusi fərq alətindən istifadə edin.

Image
Image

Sağ sürüşdürmə çubuğunun yuxarı və aşağı hissəsində qırmızı xətlərlə təmsil olunduğu kimi, bu fayllar arasında iki fərq var. Birincisi verilənlər bazası adını ehtiva edən sətirdir və bu fərqlidir, çünki fayllar fərqli adlanırdı. İkincisi, dump faylı üçün vaxt damğasıdır. Bu fərqlidir, çünki ikinci verilənlər bazası birincidən sonra yenidən yaradılmışdır. Əks halda, fayllar tam olaraq eynidir, yəni onları yaradan verilənlər bazası da eynidir.

FAQ

    mysqldump xətasını necə düzəldə bilərsiniz: Kilid cədvəllərindən istifadə edərkən giriş rədd edildi?

    Verilənlər bazası administratorunuzdan sizə LOCK imtiyazı verməsini xahiş edin. Bu problemi həll etmirsə, [ $ mysqldump --single-transaction kimi --single-transaction bayrağı əlavə edərək eyni mysqldump əmrini işə salın.] [-u istifadəçi] [-p DBNAME] > backup.sql

    mysqldump ilə "harada" bəndindən istifadə edə bilərsiniz?

    Yalnız verilmiş şərti yerinə yetirən sətirləri ehtiva edən ehtiyat nüsxəsini yaratarkən WHERE bəndindən istifadə edin. Məsələn, yalnız id sütunu 100-dən çox olan sətirlərdən məlumatları boş altmaq üçün "mysqldump my_db_name my_table_name --where="id > 100" > my_backup.sql" daxil edin.

Tövsiyə: