Sandarkan dan pulihkan pangkalan data MySQL (MariaDB) dengan mysqldump. Apakah dump pangkalan data MySQL dan bagaimana untuk melakukannya

Memang pelik, tetapi agak sukar untuk mencari maklumat ini di Internet. Sekumpulan semua jenis cadangan sayap kiri. Tetapi sebenarnya, semuanya mudah. Anda boleh memulihkan dump dengan arahan:

# mysql-u -p< mysql_dump.sql.

Sebaliknya, gantikan nama pengguna, saya secara peribadi melakukan pemulihan daripada akar. Dan dalam mysql_dump, sql, sebenarnya, dump dibuat mysqldump utiliti. Pilihan -p menunjukkan kebenaran dengan kata laluan; selepas menekan enter anda akan diminta untuk kata laluan. Itu sahaja, sebenarnya. Anda boleh membuat pembuangan dengan arahan:

# mysqldump-u root -p -f database_name > file_with_dump.sql

Di sini parameter -f database_name menentukan nama pangkalan data yang kami simpan. Jika anda memerlukan segala-galanya, kami menggantikannya dengan --semua-pangkalan data. Pilihan ini akan menunjukkan menyimpan semua pangkalan data pada pelayan. Untuk tidak memasukkan kata laluan setiap kali, anda boleh menentukannya secara langsung dalam arahan (ini perlu jika anda melakukan pembuangan cron daripada skrip), namun, dari sudut pandangan keselamatan, soalan timbul di sini, terutamanya jika kata laluan adalah akar untuk otot. Sekarang, jika hanya otot memahami sekurang-kurangnya kata laluan md5 ... Namun, ia bukan fakta yang dia tidak faham, saya hanya mungkin saya tidak tahu :)

Pengarang

Alex Razgibalov

Lelaki gila, umur yang tidak tentu, menikmati khayalan penganiayaan. Tidak percaya secara patologi, mementingkan diri sendiri, autoritarian. Diagnosis sekunder - pengaturcara dan pembantu. Memiliki Bahasa Inggeris pada tahap perbualan yang kurang baik. Juga biasa dengan beberapa bahasa lain. Dia berminat dengan semua orang dan segala-galanya, kerana pengetahuannya dalam mana-mana bidang adalah cetek dan cetek. Perwatakan tidak dapat dikawal. Kekuatan - 55 darjah.

Selalunya, anda boleh menguruskan pangkalan data anda dengan mudah daripada alatan web seperti PHPMyAdmin. Malangnya, ada kalanya perlu dipulihkan sejumlah besar data. Ini tidak boleh dicapai melalui PHPMyAdmin kerana di luar PHP (sama ada masa berjalan skrip maksimum tidak membenarkan atau mustahil untuk dimuatkan arkib besar daripada pangkalan data).

Menggunakan MySQL dari baris arahan

Jika anda menggunakan MySQL pada Linux atau MS Windows, anda boleh menggunakan baris arahan untuk melaksanakan kebanyakan tugas. Jika anda menggunakan MS Windows, pastikan laluan ke boleh laku baris arahan disertakan dalam laluan sistem. Jika tidak, anda perlu memasukkan laluan penuh untuk setiap arahan.

Bagaimana untuk membuat sandaran pangkalan data MySQL

MySQL menyediakan utiliti yang dipanggil "mysqldump." Pada asasnya, alat ini mencipta fail rata yang mengandungi arahan MySQL untuk membaiki pangkalan data. Berikut adalah beberapa contoh penggunaan mysqldump:

Mencipta sandaran pangkalan data yang mudah

# mysqldump -u nama pengguna -p DB_name > your_file.sql

Ini mencipta fail yang mengandungi semua pernyataan MySQL untuk membuat jadual dan memulihkan data ke pangkalan sedia ada data. Jika pangkalan data sasaran mengandungi jadual dengan nama yang sama, ia akan ditimpa. Jika anda mahu jadual sedia ada digugurkan dan digunakan semula, kemudian gunakan pilihan "add-drop-table":

# mysqldump --add-drop-table -u nama pengguna -p DB_name > your_file.sql

Juga, anda boleh memilih ini sebagai alternatif:

# mysqldump --add-drop-databases -u username -p DB_name > your_file.sql

Sandarkan berbilang pangkalan data

Anda boleh membuat salinan berbilang pangkalan data ke dalam satu fail menggunakan pilihan pangkalan data:

# mysqldump -u nama pengguna -p --databases your_database1 your_database2 your_database3 > your_file.sql

Mencipta sandaran semua pangkalan data boleh dicapai menggunakan pilihan semua pangkalan data:

# mysqldump -u nama pengguna -p --all-databases > your_file.sql

Menyandarkan jadual InnoDB

Jika pangkalan data mempunyai lajur InnoDB, anda perlu melumpuhkan integriti rujukan semasa memulihkan data. Malangnya, ini tidak boleh dilakukan menggunakan utiliti mysqldump. Untuk melakukan ini, anda perlu membuka fail itu sendiri dan menambah:

TETAPKAN FOREIGN_KEY_CHECKS = 0;
... Dan tambahkan yang berikut pada penghujung fail:
TETAPKAN FOREIGN_KEY_CHECKS = 1;

Memampatkan Fail Dump MySQL

Jika anda menggunakan mysqldump in Cangkang Linux, anda boleh memampatkan melalui Gzip untuk memampatkan fail dump (dengan andaian anda telah memasang gzip):

# mysqldump -u nama pengguna -p your_database_name | gzip -c your_file.sql.gz

Memulihkan daripada sandaran MySQL

Untuk memulihkan sandaran yang dibuat dengan mysqldump, anda perlu menggunakan arahan MySQL. Jika fail dump MySQL anda tidak mengandungi "Buat Pangkalan Data" o, anda boleh menggunakan arahan berikut:

# mysql -u nama pengguna -p your_database_name< your_file.sql

Tetapi, jika ini berjaya, gunakan arahan yang sama tanpa menyatakan nama pangkalan data:

# mysql -u nama pengguna -p< your_file.sql

Lagi maklumat terperinci tentang mysqldump boleh didapati di laman web rasmi MySQL.

./mysql -u -hlm H < db_dump-file

2018-12-04T00:00Z

11-12-2018T00:00Z

Apabila kami mencipta fail dump dengan mysqldump, ia mengandungi skrip SQL yang besar untuk mencipta semula kandungan pangkalan data. Jadi kami memulihkannya dengan menjalankan baris arahan klien MySQL:

Mysql -uroot -p

(di mana root ialah nama pengguna pentadbir kami untuk MySQL) dan selepas menyambung ke pangkalan data kami memerlukan arahan untuk mencipta pangkalan data dan membaca fail:

Cipta pangkalan data new_db; gunakan new_db; \. dumpfile.sql

Butiran akan berubah bergantung pada pilihan yang digunakan semasa membuat fail dump.

18-12-2018T00:00Z

Anda hanya perlu menjalankan ini:

mysql -p -u< db_backup.dump

Jika dump mengandungi berbilang pangkalan data, anda harus meninggalkan nama pangkalan data:

mysql -p -u< db_backup.dump

Untuk menjalankan arahan ini, buka command prompt (pada Windows) dan cd ke dalam direktori di mana mysql.exe berada fail boleh laku mysql.exe (anda mungkin perlu memikirkannya sedikit, ia bergantung pada cara anda memasang mysql, iaitu berdiri sendiri atau sebagai sebahagian daripada pakej seperti WAMP). Apabila anda berada dalam direktori ini, anda hanya perlu memasukkan arahan.

25-12-2018T00:00Z

Ia sepatutnya semudah menjalankan ini:

Mysql -u -hlm< db_backup.dump

Jika dump mempunyai satu pangkalan data, anda mungkin perlu menambah baris di bahagian atas fail:

GUNA ;

Jika ia adalah longgokan banyak pangkalan data, pernyataan penggunaan sudah ada.

Untuk menjalankan arahan ini, buka command prompt (pada Windows) dan cd ke dalam direktori di mana mysql.exe mengandungi executable mysql.exe (anda mungkin perlu memikirkannya sedikit, ia bergantung pada cara anda memasang mysql, iaitu standalone atau sebagai sebahagian daripada pakej seperti WAMP). Sebaik sahaja anda berada dalam direktori itu, anda hanya boleh menaip arahan seperti yang saya lakukan di atas.

01-01-2019T00:00Z

Perintah satu baris untuk memulihkan SQL yang dijana daripada mysqldump

Mysql -u -hlm E "sumber

08-01-2019T00:00Z

Menggunakan fail dump 200MB yang dibuat pada Linux untuk memulihkan pada Windows dengan mysql 5.5, saya telah lebih berjaya Dengan

Fail sumber.sql

pendekatan baris arahan mysql daripada menggunakan

mysql< file.sql

pendekatan baris arahan menyebabkan beberapa ralat "pelayan telah pergi" 2006 (pada tingkap)

Anehnya, perkhidmatan yang dibuat semasa pemasangan (mysql) merujuk kepada fail my.ini yang tiada di sana. Saya menyalin fail contoh "besar" ke dalam my.ini, yang telah saya ubah suai dengan peningkatan yang disyorkan.

nilai saya

Maksimum_paket_dibenarkan = 64M interaktif_masa tamat = 250 menunggu_masa tamat = 250

15-01-2019T00:00Z

Sebagai contoh konkrit jawapan sebelum ini:

Saya perlu memulihkan sandaran supaya saya boleh mengimport/memindahkannya Pelayan SQL. Saya hanya memasang MySql tetapi tidak mendaftarkannya sebagai perkhidmatan atau menambahkannya ke laluan saya kerana saya tidak perlu menjalankannya.

sudah biasa Windows Explorer untuk meletakkan fail dump saya dalam C:\code\dump.sql. Kemudian buka MySql dari item menu Mula. Mencipta DB, kemudian jalankan arahan sumber dengan jalan penuh dengan cara berikut:

Mysql> cipta pangkalan data temp mysql> gunakan temp mysql> sumber c:\code\dump.sql

Daripada pengarang: Saya datang untuk melawat seorang kawan, dan isterinya histeria, burung kakak tua itu menjerit: "Mai-es-qu-el-dump." Rakan itu sendiri sedang berbohong dengan sakit kepala dan keinginan gila untuk mengetahui bagaimana pemulihan daripada pembuangan berlaku dalam MySQL. Untuk menyelamatkan kepala "orang jahil" yang lain, saraf isteri mereka dan pita suara burung kakak tua, mari kita pertimbangkan topik ini dengan lebih terperinci.

Bahaya "Termasuk Semua"

Rakan saya, seperti ramai pemula, menggunakan pakej perisian"Semua termasuk". Yang paling biasa dalam RuNet ialah set lelaki"Denver". Dan dengan "kerumitan"nya (ia termasuk pelayan tempatan, shell untuk bekerja dengan DBMS, pelayan MySQL) dia mendorong "tuan-tuan" ini ke tahap gila.

Senarai Denver termasuk hanya beberapa utiliti standard untuk bekerja dengan MySQL. Dan sejak kita semua orang moden, kemudian untuk maklumat yang hilang (untuk memahami intipati sesuatu) kami pergi ke Internet. Tetapi bahan yang diterbitkan di Internet tidak mengatakan bahawa untuk melaksanakan set arahan tertentu, utiliti khusus diperlukan dalam pakej MySQL standard. Sebagai contoh, untuk mencipta dump pangkalan data data MySQL, anda memerlukan program MySQLDump.

Oleh itu, jika anda juga menggunakan Denwer untuk melatih dan menguji kod anda, dan pertanyaan yang diterangkan dalam bahan ini tidak akan dilaksanakan pada baris arahan, kemudian pergi ke: D:\Webserver\usr\local\mysql-5.5\bin

Dan lihat apakah utiliti untuk bekerja dengan pelayan DBMS tersedia "di atas kapal" mesin pelanggan. Saya ulangi sekali lagi, hari ini kita memerlukan program MySQLDump.

Bekerja dengan MySQLDump

Utiliti ini ialah fail "boleh laku" biasa, yang selepas dimuat turun harus diletakkan di dalamnya folder tong sampah(laluan ke sana ditunjukkan dalam bahagian pertama bahan). ini aplikasi kecil membolehkan anda menyelesaikan masalah "global" - pulihkan dari pembuangan dalam MySQL, buat sandaran dan konfigurasikan parameter sandaran.

Utiliti tidak mempunyai antara muka sendiri, jadi anda bekerja dengannya melalui CMD standard yang disertakan set standard program Windows(lancarkan melalui menu Mula). Dan sekarang langkah demi langkah:

Mula-mula, kita pergi ke cakera maya (dicipta selepas melancarkan Apache, yang merupakan sebahagian daripada Denver).

Jika anda tidak menggunakan set "gentleman", itu tidak bermakna anda tidak gentleman. Anda hanya perlu melangkau langkah arahan ini.

Kemudian, menggunakan arahan cd (tukar direktori), nyatakan laluan ke folder tempat MySQL dipasang. Di Denver direktori ini terletak di sini: Z:\usr\local\mysql-5.5\bin

Apabila memasang sistem pengurusan pangkalan data secara berasingan, folder ini terletak: C:\Program Files…

Oleh kerana kita sudah berada pada cakera (maya) yang dikehendaki, kita hanya perlu menentukan sebahagian daripada laluan selepas arahan cd:

Mari kita semak kefungsian aplikasi dan buat dump MySQL bagi pangkalan data, yang terletak pada pelayan kami. Sebagai contoh, pangkalan data "wordpress". Untuk melakukan ini, kami akan menggunakan utiliti dengan nama yang sama arahan mysql pembuangan. Inilah sintaksnya:

mysqldump -u nama pengguna -p kata laluan name_database > backup- database.sql

mysqldump - u nama pengguna - p kata laluan name_database > backup - database . sql

Contoh penggunaan arahan:

mysqldump -uroot wordpress>Z:\home\localhost\dump\wp_copy.sql

mysqldump - uroot wordpress > Z:\home\localhost\dump\wp_copy. sql

Akibatnya, kami menerima pembuangan pangkalan data tapak WordPress:

Apakah tempat pembuangan sampah?

Jika anda tidak tahu apa-apa tentang pembuangan pangkalan data MySQL, dan anda sukar meneka apa itu, maka bahagian ini untuk awak. Dump ialah sejenis sandaran pangkalan data. Lebih tepat lagi, fail salinan pangkalan data (bergantung pada jenis dan alat penciptaan) mungkin mengandungi talian data jenis tertentu, dan juga termasuk pertanyaan SQL untuk membina semula maklumat yang hilang, struktur dan nilai parameternya.

Agar tidak berasas, mari buka salinan wp_copy yang kami buat menggunakan Notepad standard. Selepas kajian singkat tentang kandungannya, kita akan melihat bahawa ia terdiri hampir keseluruhannya daripada pertanyaan yang boleh digunakan untuk mencipta semula struktur jadual pangkalan data dan kandungannya.

Pemulihan ujian

Jika tangan anda gatal dan sabun tidak membantu, maka kami akan menjalankan "ujian" utiliti. Pertama, melalui phpMyAdmin (untuk menjadikannya lebih pantas) kami akan mencipta pangkalan data "Auto" ujian dengan dua jadual. Mari kita panggil satu "kereta" dan satu lagi "warna". Tambahkan beberapa baris data pada setiap baris untuk kejelasan.

Sekarang mari kita buat dump MySQL bagi pangkalan data yang kita minati. Kami akan menyimpan salinan sandaran di tempat yang sama. Kod permintaan:

mysqldump -uroot auto>Z:\home\localhost\dump\auto_copy.sql

mysqldump - uroot auto > Z:\home\localhost\dump\auto_copy. sql

Pergi ke folder dump, kami melihat bahawa utiliti telah mencipta salinan "auto_copy".

Lambakan pangkalan data MySQL sudah biasa kepada setiap juruweb. Ini tidak menghairankan, kerana prosedur ini dilakukan sebagai sebahagian daripada sandaran atau pemindahan pangkalan data ke pengehosan lain.

Oleh itu, mengetahui cara membuang pangkalan data MySQL adalah penting untuk mana-mana pembangun web. Apa ini? Ini ialah fail yang mengandungi arahan untuk bahasa SQL, yang menyebabkan salinan tepat pangkalan data anda dibuat dalam kandungan dan struktur. Untuk situasi apakah anda harus membuang pangkalan data MySQL:

  • Memindahkan pangkalan data ke pelayan lain

Longgokan mungkin diperlukan jika anda bercadang untuk memindahkan pangkalan data anda ke pengehosan lain. Dengan bantuannya anda boleh mencipta semula tanpa sebarang kesulitan salinan tepat pangkalan lama data.

  • Sandaran pangkalan data

Pengehosan laman web maya, yang termasuk harian sandaran. Sandaran data yang kerap akan menjimatkan banyak usaha dan saraf anda sekiranya berlaku situasi yang tidak dijangka. Percubaan gagal dengan tapak atau ranap pelayan boleh menyebabkan kehilangan seluruh pangkalan data, dan hanya pembuangan tepat pada masanya akan membantu anda dalam situasi ini. Sememangnya, ia tidak boleh disimpan pada pelayan yang sama dengan pangkalan data utama, kerana jika tidak, anda akan kehilangan semua maklumat tanpa kemungkinan pemulihannya.

Bagaimana untuk membuang pangkalan data MySQL?

wujud pelbagai cara mencipta tempat pembuangan, dan kemudian kita akan melihat pilihan utama:

  • Membuat pembuangan menggunakan konsol MySQL

Dalam kes ini, untuk membuat pembuangan pangkalan data, gunakan baris arahan atau konsol MySQL, di mana anda perlu memasukkan perintah mysqldump -uuser -ppass db_name > file_to_save. Dalam kes ini, pengguna ialah nama pengguna pangkalan data dengan hak yang mencukupi untuk membuat dump, pas ialah kata laluan untuk pangkalan data, db_name ialah nama pangkalan data yang dikehendaki, dan bukannya file_to_save, anda mesti menentukan nama fail di mana tempat pembuangan akan disimpan.

Selepas memasukkan arahan dengan betul lokasi yang ditentukan fail dengan sambungan .sql akan muncul, iaitu dump pangkalan data. Kaedah ini adalah yang paling universal dan popular di kalangan pengguna sistem Unix, contohnya, Ubuntu, jika tiba-tiba perlu Penghijrahan MySQL ke pelayan lain. Dalam kes yang sama, jika anda tidak tahu arahan konsol, anda akan memerlukan tambahan perisian.

  • Membuat pembuangan pangkalan data menggunakan phpMyAdmin

Jika anda lebih suka menggunakan perisian tambahan, anda boleh membuang pangkalan data menggunakan PHP menggunakan, sebagai contoh, phpMyAdmin. Untuk melakukan ini, ikuti langkah berikut:

  1. Log masuk ke phpMyAdmin.
  2. Pilih asas yang diperlukan data daripada senarai umum.
  3. Log masuk ke pangkalan data yang dipilih.
  4. Selepas kebenaran, lajur kiri akan mengandungi pangkalan data itu sendiri dan maklumat perkhidmatan yang berkaitan dengannya. Sekarang anda perlu memilih semula pangkalan data anda.
  5. Pergi ke tab "Eksport", kemudian dayakan beberapa tetapan, iaitu:

    Tambah DROP TABLE/VIEW/PROSEDUR/FUNGSI/ACARA

    Pilihan ini akan membolehkan anda memulihkan pada masa hadapan tanpa rasa takut. pangkalan data MySQL dari tempat pembuangan. Semua jadual yang mempunyai nama yang sama akan dipadamkan dahulu, iaitu, arahan dpop akan dilaksanakan, dan kemudian digantikan dengan yang serupa daripada dump anda. Akibatnya, anda akan melindungi diri anda daripada mencipta jadual pendua dan, akibatnya, kerosakan Pangkalan data.

    Pek dengan zip

    Mendayakan pilihan ini akan memastikan bahawa pembuangan DB anda diarkibkan dan anda akan mendapat fail dengan sambungan .zip. Ini akan membolehkan anda menyimpan dump dengan cepat dan betul walaupun dengan kelajuan sambungan yang rendah.

  6. Anda menerima longgokan pangkalan data sedia untuk digunakan. Jika semuanya telah dilakukan dengan betul, maka anda akan mempunyai arkib yang mengandungi fail dengan sambungan .sql - longgokan pangkalan data yang anda perlukan.

Sekarang anda tahu bagaimana untuk melakukannya pembuangan MySQL, jika anda tiba-tiba perlu memindahkan pangkalan data ke pelayan lain atau sebarang situasi lain timbul apabila ia mungkin berguna salinan sandaran DB. Sudah tentu, terdapat banyak lagi cara untuk membuat tempat pembuangan sampah, sebagai tambahan kepada yang diterangkan di atas. Tetapi walaupun pemilikan yang paling pilihan mudah dan aplikasi biasa mereka dalam amalan akan membolehkan anda berasa lebih yakin dalam mana-mana keadaan yang tidak dijangka, kerana ia akan mencukupi untuk hanya menggunakan tempat pembuangan MySQL dan memulihkan semua pangkalan data dengan cepat.

Jika anda memutuskan untuk membeli pelayan khusus daripada syarikat kami, maka anda akan diberikan 100 GB untuk pelayan jauh sandaran, di mana anda boleh mengkonfigurasi sandaran automatik tapak dan pangkalan data. Dalam kes ini, anda akan sentiasa mempunyai tempat pembuangan MySQL yang baru.

Sekiranya anda masih menghadapi kesukaran membuat dump dan menukar pelayan atau pengehosan, anda boleh menghubungi kakitangan sokongan teknikal RigWEB, dan mereka akan menjawab sebarang soalan anda dalam kecekapan mereka. Jika atas sebab tertentu anda tidak boleh melakukannya sendiri, pakar kami akan memindahkan tapak web anda daripada pengehosan lain kepada kami secara percuma. Kami juga akan memastikan sandaran tetap dan penyediaan salinan data anda yang terkini jika perlu. Menggunakan pengehosan RigWEB profesional, anda pastinya perlindungan maksimum projek anda daripada sebarang kejutan!