Mysqldump гэж юу вэ, би үүнийг хэрхэн ашиглах вэ?

Агуулгын хүснэгт:

Mysqldump гэж юу вэ, би үүнийг хэрхэн ашиглах вэ?
Mysqldump гэж юу вэ, би үүнийг хэрхэн ашиглах вэ?
Anonim

Чөлөөт боломжтой өгөгдлийн сангийн тэргүүлэгчдийн нэг болох MySQL нь олон вэб программуудын түгээмэл сонголт юм. Интернэтэд өртсөн тул таны апп хортой халдлагад өртөж байна. Хэрэв таны сервер эвдэрсэн бол хамгийн сайндаа програмыг дахин суулгах хэрэгтэй; Хамгийн муу тохиолдолд та мэдээллээ алдаж болно. Нэмж хэлэхэд, та мэдээллийн санг нэг серверээс нөгөө сервер рүү шилжүүлэх шаардлагатай болж болзошгүй.

mysqldump-г юунд ашигладаг вэ?

Mysqldump хэрэгсэл нь серверийн эвдрэл болон шилжих нөхцөл байдлын аль алиныг нь хамарна. Үүний үндсэн үүрэг бол MySQL мэдээллийн санг авч, текст файл болгон хаях явдал юм. Гэхдээ ямар ч текст файл биш; файл нь SQL хэллэгүүдийн багц юм. Эдгээр мэдэгдлүүд нь гүйцэтгэгдэж байх үед мэдээллийн санг өгөгдлийн санг овоолгыг гүйцэтгэх үеийн яг төлөвт нь сэргээнэ.

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

MySQL баримтууд нь нөөцлөлт хийх бусад аргуудыг жагсаасан боловч эдгээр нь сул талуудтай:

  • MySQL Enterprise-с өгөгдлийн сангийн халуун хуулбар хийх нь эдгээр нөөцлөлтийг хийх гайхалтай арга юм - хэрвээ та Enterprise үнийн шошго дээр дургүйцэхгүй бол.
  • Өгөгдлийн сангийн өгөгдлийн санг хуулах нь үйлдлийн системүүд рүү шилжихэд төвөгтэй байдаг, учир нь очих газрууд өөр байх болно.
  • Хязгаарлагдмал текст файл руу экспортлох нь танд агуулгыг өгөх боловч та бүтцийг дахин үүсгэх шаардлагатай болно.
  • Та MySQL Workbench зэрэг GUI програмуудаас мэдээллийн санг нөөцлөх боломжтой. Гэхдээ энэ бол гарын авлагын процесс юм; скрипт хийх эсвэл багц ажилд оруулах зүйл биш.

mysqldump хэрэгслийг суулгах

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

sudo apt install mysql-client

MySQL Дампыг задлах

Суулгасны дараа mysqldump ашиглан мэдээллийн баазыг бүрэн нөөцлөөрэй.

mysqldump -h [таны DB хостын нэр эсвэл IP] -u [DB хэрэглэгчийн нэр] -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 dump-г дахин импортлох үед тушаал нь файлаар дамжуулан ажиллаж, мэдэгдлүүдийг гүйцэтгэж, мэдээллийн санг өмнөх байдлаар нь дахин бүтээдэг.

MySQL Дамп файл импортлох

Дамп файлыг импортлохын өмнө танд аль хэдийн үүсгэсэн мэдээллийн сан болон түүний хүчинтэй хэрэглэгчийн нэр, нууц үг хэрэгтэй болно. Мөн та мэдээллийн сангийн бүх зөвшөөрөлтэй байх ёстой. Танд GRANT зөвшөөрөл хэрэггүй, гэхдээ бүгдийг нь олгох нь илүү хялбар.

Өгөгдлийн сангийнхаа хамгаалалтын үүргийг өөрчлөхөөс өмнө мэдээллийн сангийн зөвшөөрлийн талаар нэмэлт мэдээлэл аваарай.

Өгөгдлөө дахин импортлохын тулд MySQL сервер рүү mysql командаар нэвтэрнэ үү. Санал дээр use [өгөгдлийн сангийн нэр] гэж бичээд мэдээллийн сангийн нэрийг орлуулна. source [файлын нэр] гэж оруулаад өмнө нь авсан дамп файлынхаа нэрийг орлуулна уу.

Та дуусмагц SQL хэллэгүүд ажиллаж байгааг тэмдэглэсэн мессежүүдийн жагсаалт гарч ирнэ. Алдааг анхаарч байгаарай, гэхдээ танд зөв зөвшөөрөл байгаа бол зүгээр байх болно.

Image
Image

Үйл явц дуусахад та анхны мэдээллийн сангийн хуулбартай болно. Өгөгдлийн сангийн хооронд ижил төстэй байдлыг шалгахын тулд өөр дамп хийж, хоёр гаралтыг харьцуулна уу. Хоёр файлыг харьцуулахын тулд текст засварлагч эсвэл тусгай ялгах хэрэгслийг ашиглана уу.

Image
Image

Эдгээр файлуудын хооронд баруун гүйлгэх мөрний дээд ба доод хэсэгт улаан шугамаар дүрслэгдсэн хоёр ялгаа бий. Эхнийх нь өгөгдлийн сангийн нэрийг агуулсан мөр бөгөөд файлууд өөр өөр нэртэй байсан тул энэ нь өөр юм. Хоёр дахь нь dump файлын цагийн тэмдэг юм. Эхний мэдээллийн дараа хоёр дахь мэдээллийн санг дахин үүсгэсэн учраас энэ нь өөр юм. Үгүй бол файлууд нь яг адилхан, өөрөөр хэлбэл тэдгээрийг үүсгэсэн өгөгдлийн сангууд ч мөн адил байна.

FAQ

    Та mysqldump алдааг хэрхэн засах вэ: Хүснэгт түгжээг ашиглах үед хандалтыг хориглосон уу?

    Өгөгдлийн сангийн админаасаа LOCK эрх олгохыг хүс. Хэрэв энэ нь асуудлыг шийдэж чадахгүй бол ижил mysqldump командыг ажиллуулж үзнэ үү, жишээлбэл, - -single-transaction тугийг нэмж, жишээлбэл [ $ mysqldump --single-transaction] [-u хэрэглэгч] [-p DBNAME] > backup.sql

    Та mysqldump-д "хаана" заалтыг ашиглаж болох уу?

    Өгөгдсөн нөхцөлийг хангасан мөрүүдийг багтаасан нөөцлөлт үүсгэхдээ WHERE заалтыг ашиглана уу. Жишээлбэл, зөвхөн 100-аас дээш id баганатай мөрүүдээс өгөгдлийг буулгахын тулд "mysqldump my_db_name my_table_name --where="id > 100" > my_backup.sql" гэж оруулна уу.

Зөвлөмж болгож буй: