Wat is mysqldump en hoe gebruik ek dit?

INHOUDSOPGAWE:

Wat is mysqldump en hoe gebruik ek dit?
Wat is mysqldump en hoe gebruik ek dit?
Anonim

As een van die voorste vrylik beskikbare databasisse, is MySQL 'n gewilde keuse vir baie webtoepassings. As u aan die internet blootgestel word, word u toepassing aan kwaadwillige aanvalle blootgestel. As jou bediener gekompromitteer is, moet jy op sy beste die toepassing herinstalleer; in die ergste geval kan jy jou data verloor. Daarbenewens kan jy dalk in 'n situasie kom waar jy 'n databasis van een bediener na 'n ander moet migreer.

Waarvoor word mysqldump gebruik?

Die mysqldump-nutsding het jou gedek vir beide die bediener-kompromie en migrasiesituasies. Die basiese funksie daarvan is om 'n MySQL-databasis te neem en dit as 'n tekslêer uit te gooi. Maar nie enige tekslêer nie; die lêer is 'n stel SQL-stellings. Hierdie stellings, wanneer dit uitgevoer word, rekonstrueer die databasis tot die presiese toestand waarin dit was toe die storting uitgevoer is.

Gebruik mysqldump om uitvoere van 'n databasis as rugsteun te skep, of wanneer die databasis na 'n nuwe gasheer geskuif word. In beide gevalle sal die tekslêer terug in 'n MySQL-databasisbediener ingevoer word. Dit sal al die SQL-stellings in die lêer uitvoer, wat die databasis na sy oorspronklike toestand herbou. Hierdie deel gebruik nie die mysqldump-opdrag nie, maar dit sou ook nie moontlik wees sonder hierdie hulpprogram nie.

Die MySQL-dokumente lys ander metodes om rugsteun te maak, maar dit het nadele:

  • Hotcopying van 'n databasis vanaf MySQL Enterprise is 'n wonderlike manier om hierdie rugsteun te kry - as jy nie omgee vir die Enterprise-prysetiket nie.
  • Kopieer die databasisdatagidse kan moeilik wees wanneer jy oor bedryfstelsels beweeg, aangesien die bestemmings anders sal wees.
  • Uitvoer na 'n afgebakende tekslêer sal vir jou die inhoud gee, maar jy sal die struktuur moet herskep.
  • Jy kan gereeld databasisse rugsteun vanaf GUI-programme soos MySQL Workbench. Maar dit is 'n handmatige proses; nie iets wat jy kan skryf of in 'n bondeltaak kan insluit nie.

Installeer die mysqldump-nutsding

Vir Windows, kyk na ons instruksies om MySQL op Windows 7 te installeer (die installeringsproses is dieselfde vir Windows 10). Op macOS, sien ons aanwysings om MySQL op macOS 10.7 te installeer (weereens ouer maar steeds van toepassing). Gebruikers van Ubuntu-gebaseerde Linux-stelsels kan die volgende opdrag gebruik om die MySQL-kliënt en nutsprogramme te installeer:

sudo apt installeer mysql-kliënt

Onttrek 'n MySQL-storting

Sodra dit geïnstalleer is, gebruik mysqldump om 'n volledige rugsteun van 'n databasis te kry.

mysqldump -h [jou DB-gasheer se naam of IP] -u [die DB-gebruiker se naam] -p [die databasisnaam] > db_backup.sql

Hier is 'n beskrywing van die vlae wat in hierdie opdrag gebruik word:

  • - h: Hierdie vlag is die databasisgasheer. Dit kan 'n volledige gasheernaam (byvoorbeeld myhost.domain.com) of 'n IP-adres wees. Laat dit leeg as jy die opdrag op dieselfde gasheer as die MySQL-bediener uitvoer.
  • - u: Jou gebruikernaam.
  • - p: As jy die MySQL-installasie behoorlik beveilig het, sal jy 'n wagwoord nodig hê om te koppel. Hierdie vlag sonder argument vra jou vir 'n wagwoord wanneer jy die opdrag uitvoer. Soms is dit nuttig om die wagwoord direk as die argument vir hierdie vlag te verskaf, byvoorbeeld in 'n rugsteunskrif. Maar op die spoed moet jy nie, want as iemand toegang tot jou rekenaar verkry het, kan hulle hierdie wagwoord in die opdraggeskiedenis kry.
  • > db_backup.sql: Hierdie deel sê vir mysqldump om sy uitvoer na 'n lêer te rig. Normaalweg voer die opdrag alles uit na die konsole, wat beteken dat jy verskeie SQL-stellings op die skerm sal sien. Die >-simbool lei die uitvoer na die genoemde tekslêer. As hierdie lêer nie bestaan nie, word dit outomaties geskep.

Wanneer dit klaar is, sal jy 'n. SQL-lêer hê. Dit is 'n tekslêer wat SQL-stellings bevat. Jy kan dit in enige teksredigeerder oopmaak om die inhoud te inspekteer. Hier is 'n uitvoer vanaf 'n WordPress-databasis wat wys hoe hierdie lêers saamgestel is.

Image
Image

Die lêer is in afdelings verdeel. Die eerste afdeling stel die tabel op vir WordPress-opmerkings. Die tweede afdeling herskep die inhoud in daardie tabelle (in hierdie voorbeeld, die kommentaarrekords). Wanneer jy die MySQL-storting weer invoer, werk die opdrag deur die lêer, voer die stellings uit en herbou die databasis soos dit was.

Voer 'n MySQL-stortlêer in

Voordat jy die stortingslêer invoer, sal jy 'n databasis nodig hê wat reeds geskep is en sy geldige gebruikersnaam en wagwoord. Jy moet ook al die toestemmings vir die databasis hê. Jy het nie die GRANT-toestemming nodig nie, maar dit is makliker om almal toe te staan.

Kom meer te wete oor databasistoestemmings voordat jy sekuriteitsrolle binne jou databasis verander.

Om jou data weer in te voer, meld aan by die MySQL-bediener met die mysql opdrag. Tik use [databasisnaam] by die prompt, en vervang die naam van die databasis. Voer source [lêernaam] in en vervang die naam van die stortingslêer wat jy voorheen geneem het.

Wanneer jy klaar is, verskyn 'n lys boodskappe wat daarop let dat SQL-stellings uitgevoer word. Hou 'n oog vir foute, maar as jy die regte toestemmings het, behoort jy reg te wees.

Image
Image

Wanneer die proses voltooi is, sal jy 'n duplikaat van die oorspronklike databasis hê. Om die ooreenkoms tussen die databasisse te verifieer, voer nog 'n storting uit en vergelyk dan die twee uitsette. Gebruik 'n teksredigeerder of 'n toegewyde verskilinstrument om die twee lêers te vergelyk.

Image
Image

Daar is twee verskille tussen hierdie lêers, soos voorgestel deur rooi lyne aan die bo- en onderkant van die regterskuifbalk. Die eerste is die reël wat die databasisnaam bevat, en dit is anders omdat die lêers anders benoem is. Die tweede is die tydstempel vir die stortingslêer. Dit is anders omdat die tweede databasis na die eerste herskep is. Andersins is die lêers presies dieselfde, wat beteken dat die databasisse wat hulle gegenereer het ook is.

Gereelde Vrae

    Hoe herstel jy die mysqldump-fout: Toegang geweier wanneer jy slottabelle gebruik?

    Vra jou databasisadministrateur om aan jou die LOCK-voorreg te gee. As dit nie die probleem oplos nie, probeer om dieselfde mysqldump-opdrag uit te voer deur die - -enkeltransaksie vlag by te voeg, soos [ $ mysqldump --single-transaction] [-u gebruiker] [-p DBNAME] > backup.sql

    Kan jy 'n "waar"-klousule met mysqldump gebruik?

    Gebruik 'n WHERE-klousule wanneer 'n rugsteun geskep word wat slegs die rye insluit wat aan die gegewe voorwaarde voldoen. Byvoorbeeld, om data slegs van rye met die id-kolom groter as 100 te stort, voer "mysqldump my_db_name my_table_name --where="id > 100" > my_backup.sql". in

Aanbeveel: