Apakah itu mysqldump dan Bagaimana Saya Menggunakannya?

Isi kandungan:

Apakah itu mysqldump dan Bagaimana Saya Menggunakannya?
Apakah itu mysqldump dan Bagaimana Saya Menggunakannya?
Anonim

Sebagai salah satu pangkalan data terkemuka yang tersedia secara percuma, MySQL ialah pilihan popular untuk banyak aplikasi web. Apabila terdedah kepada internet, apl anda terdedah kepada serangan berniat jahat. Jika pelayan anda terjejas, paling baik, anda perlu memasang semula aplikasi; paling teruk, anda mungkin kehilangan data anda. Selain itu, anda mungkin mengalami situasi di mana anda perlu memindahkan pangkalan data dari satu pelayan ke pelayan yang lain.

Mysqldump Digunakan Untuk Apa?

Alat mysqldump memberi anda perlindungan untuk kedua-dua situasi kompromi pelayan dan migrasi. Fungsi asasnya adalah untuk mengambil pangkalan data MySQL dan membuangnya sebagai fail teks. Tetapi bukan sebarang fail teks; fail ialah satu set pernyataan SQL. Pernyataan ini, apabila dilaksanakan, bina semula pangkalan data kepada keadaan yang tepat semasa pembuangan itu dilaksanakan.

Gunakan mysqldump untuk mencipta eksport pangkalan data sebagai sandaran, atau apabila memindahkan pangkalan data ke hos baharu. Dalam kedua-dua kes, fail teks akan diimport semula ke pelayan pangkalan data MySQL. Ia akan melaksanakan semua pernyataan SQL dalam fail, yang membina semula pangkalan data kepada keadaan asalnya. Bahagian ini tidak menggunakan perintah mysqldump, tetapi ia juga tidak boleh dilakukan tanpa utiliti ini.

Dokumen MySQL menyenaraikan kaedah lain untuk membuat sandaran, tetapi ini mempunyai kelemahan:

  • Menyalin pangkalan data daripada MySQL Enterprise ialah cara terbaik untuk mencapai sandaran ini - jika anda tidak keberatan dengan tanda harga Enterprise.
  • Menyalin direktori data pangkalan data boleh menjadi rumit apabila bergerak merentasi sistem pengendalian, kerana destinasi akan berbeza.
  • Mengeksport ke fail teks yang dibataskan akan memberi anda kandungan, tetapi anda perlu mencipta semula struktur tersebut.
  • Anda selalunya boleh membuat sandaran pangkalan data daripada program GUI seperti MySQL Workbench. Tetapi ini adalah proses manual; bukan sesuatu yang boleh anda skrip atau masukkan dalam kerja kelompok.

Pasang Alat mysqldump

Untuk Windows, semak arahan kami untuk memasang MySQL pada Windows 7 (proses pemasangan adalah sama untuk Windows 10). Pada macOS, lihat arahan kami untuk memasang MySQL pada macOS 10.7 (sekali lagi, lebih lama tetapi masih boleh digunakan). Pengguna sistem Linux berasaskan Ubuntu boleh menggunakan arahan berikut untuk memasang klien MySQL dan utiliti:

sudo apt install mysql-client

Ekstrak MySQL Dump

Setelah dipasang, gunakan mysqldump untuk mendapatkan sandaran penuh pangkalan data.

mysqldump -h [nama atau IP hos DB anda] -u [nama pengguna DB] -p [nama pangkalan data] > db_backup.sql

Berikut ialah perihalan bendera yang digunakan dalam arahan ini:

  • - h: Bendera ini ialah hos pangkalan data. Ia boleh menjadi nama hos penuh (contohnya, myhost.domain.com) atau alamat IP. Biarkan ini kosong jika anda menjalankan arahan pada hos yang sama dengan pelayan MySQL.
  • - u: Nama pengguna anda.
  • - p: Jika anda mengamankan pemasangan MySQL dengan betul, anda memerlukan kata laluan untuk menyambung. Bendera tanpa hujah ini menggesa anda untuk kata laluan apabila anda melaksanakan arahan. Kadangkala adalah berguna untuk memberikan kata laluan secara langsung sebagai hujah kepada bendera ini, sebagai contoh, dalam skrip sandaran. Tetapi pada gesaan, anda tidak sepatutnya, kerana jika seseorang mendapat akses kepada komputer anda, mereka boleh mendapatkan kata laluan ini dalam sejarah arahan.
  • > db_backup.sql: Bahagian ini memberitahu mysqldump untuk mengarahkan outputnya ke fail. Biasanya, arahan mengeluarkan segala-galanya ke konsol, bermakna anda akan melihat beberapa pernyataan SQL pada skrin. Simbol > menyalurkan output ke dalam fail teks yang dinamakan. Jika fail ini tidak wujud, ia dibuat secara automatik.

Apabila selesai, anda akan mempunyai fail. SQL. Ini ialah fail teks yang mengandungi pernyataan SQL. Anda boleh membukanya dalam mana-mana editor teks untuk memeriksa kandungannya. Berikut ialah eksport daripada pangkalan data WordPress yang menunjukkan cara fail ini disatukan.

Image
Image

Fail dibahagikan kepada bahagian. Bahagian pertama menyediakan jadual untuk komen WordPress. Bahagian kedua mencipta semula kandungan dalam jadual tersebut (dalam contoh ini, rekod ulasan). Apabila anda mengimport semula longgokan MySQL, arahan berfungsi melalui fail, melaksanakan penyata dan membina semula pangkalan data seperti sedia ada.

Import Fail Dump MySQL

Sebelum anda mengimport fail dump, anda memerlukan pangkalan data yang telah dibuat serta nama pengguna dan kata laluannya yang sah. Anda juga harus mempunyai semua kebenaran untuk pangkalan data. Anda tidak memerlukan kebenaran GRANT, tetapi lebih mudah untuk memberikan mereka semua.

Ketahui lebih lanjut tentang kebenaran pangkalan data sebelum anda menukar peranan keselamatan dalam pangkalan data anda.

Untuk mengimport semula data anda, log masuk ke pelayan MySQL dengan arahan mysql. Taip use [nama pangkalan data] pada gesaan dan gantikan nama pangkalan data. Masukkan source [nama fail] dan gantikan nama fail dump yang anda ambil sebelum ini.

Apabila anda selesai, senarai mesej muncul yang menyatakan bahawa pernyataan SQL sedang dilaksanakan. Perhatikan ralat, tetapi jika anda mempunyai kebenaran yang betul, anda sepatutnya baik-baik saja.

Image
Image

Apabila proses selesai, anda akan mendapat pendua pangkalan data asal. Untuk mengesahkan persamaan antara pangkalan data, lakukan pembuangan satu lagi kemudian bandingkan kedua-dua output. Gunakan editor teks atau alat perbezaan khusus untuk membandingkan kedua-dua fail.

Image
Image

Terdapat dua perbezaan antara fail ini, seperti yang diwakili oleh garis merah di bahagian atas dan bawah bar skrol kanan. Yang pertama ialah baris yang mengandungi nama pangkalan data, dan ini berbeza kerana fail dinamakan berbeza. Yang kedua ialah cap masa untuk fail dump. Ini berbeza kerana pangkalan data kedua dicipta semula selepas yang pertama. Jika tidak, fail adalah sama, bermakna pangkalan data yang menjananya juga.

Soalan Lazim

    Bagaimanakah anda membetulkan ralat mysqldump: Akses dinafikan apabila menggunakan jadual kunci?

    Minta pentadbir pangkalan data anda untuk memberikan anda keistimewaan LOCK. Jika ini tidak menyelesaikan isu, cuba jalankan perintah mysqldump yang sama dengan menambahkan bendera - -single-transaction, seperti [ $ mysqldump --single-transaction] [-u pengguna] [-p DBNAME] > backup.sql

    Bolehkah anda menggunakan klausa "di mana" dengan mysqldump?

    Gunakan klausa WHERE apabila membuat sandaran yang hanya menyertakan baris yang memenuhi syarat yang diberikan. Contohnya, untuk membuang data hanya daripada baris dengan lajur id lebih daripada 100, masukkan "mysqldump my_db_name my_table_name --where="id > 100" > my_backup.sql".

Disyorkan: