Mysql van een dump om slechts één tabel te vullen. We maken een dump (back-up) van de database met behulp van het hulpprogramma mysqldump. Een databasestructuur creëren zonder gegevens

Dit bericht bevat de meest gebruikte opdrachten om te maken of te implementeren reservekopieën basen MySQL-gegevens.

Nou, ik ben het gewoon beu om voortdurend sleutels te googlen als ik ze ‘plotseling’ nodig heb.

Een beetje theorie...

MySQLDUMP is een tool waarmee u back-ups van MySQL-databases kunt maken. Als resultaat krijgen we een .sql-bestand met een databasedump. Dit bestand bevat SQL-code in de vorm van tekst, d.w.z. je kunt het altijd openen met een teksteditor om het te bekijken, te bewerken, enz...
U kunt zo'n dump herstellen met behulp van het mysql-hulpprogramma via STDIN.

Er is trouwens ook zo'n hulpprogramma als MySqlHotCopy, dat het beste kan worden gebruikt om hot backups te maken, omdat het de database vergrendelt en de databasebestanden naar de gewenste locatie kopieert. Maar dit ding werkt alleen als het op de server zelf draait, het werkt alleen met MyISAM- en Archive-tabellen en is meer geschikt voor grote databases.
U kunt gegevens herstellen door de opgeslagen bestanden naar de MySQL-gegevensmap te kopiëren.

Maar over het algemeen gaat dit niet over haar... misschien schrijf ik in een ander artikel over de "hot copy"...

Een databaseback-up maken

Laten we beginnen met de meest voorkomende opdracht voor het dumpen van de site.ru-site in het site.ru-bestand:

Mysqldump -uroot -h10.30.30.10 -p site_ru > site_ru.sql

    Meer over de sleutels:
  • -u(--user=...) is de gebruikersnaam van de database;
  • -H(—host=…) is de host waarop de server zelf zich bevindt. Als de server lokaal is, kan deze parameter niet worden gebruikt of kunt u daar localhost invoeren. Houd er ook rekening mee dat het server-IP-adres na de sleutel zonder spatie moet worden geschreven;
  • -P(--password=...) is het wachtwoord van de gebruiker. Als deze sleutel niet wordt gebruikt, is verbinding met de database mogelijk als er geen wachtwoord is. Bovendien verbiedt niemand u om een ​​wachtwoord in de opdracht in te voeren, en er mag geen spatie achter de sleutel staan ​​(bijvoorbeeld: -p1234567890, waarbij 1234567890 het wachtwoord is);
  • site_ru dit is de naam van de database op de MySql-server;
  • site_ru.sql dit is het dumpbestand.

Om een ​​back-up van meerdere databases te maken, kunt u de sleutel gebruiken -B en specificeer verschillende databases, hier is een voorbeeld:

Mysqldump -uroot -h10.30.30.10 -p site_ru site2_ru site3_ru > sites.sql

Als de situatie u geen tijd geeft om na te denken en u een back-up van alle databases moet maken, dan kunt u in deze situatie de sleutel gebruiken --alle databases, hier is een voorbeeld:

Mysqldump -uroot -h10.30.30.10 -p -A > all-db.sql

Er is trouwens een nuance.

Als u een databaseback-up maakt op een draaiende en bovendien actief gebruikte server, loopt u het risico dat logische verbindingen worden verbroken. Er zijn een aantal manieren om dit te voorkomen.

De eerste manier is om tafels te vergrendelen, d.w.z. je kunt de parameter --lock-tables gebruiken, hier is een voorbeeld:

Mysqldump -uroot -h10.30.30.10 -p --lock-tabellen site_ru > site_ru.sql

Maar op het moment dat er een back-up wordt gemaakt, worden klantverzoeken opgeschort... en daarom kunnen er time-outs optreden.

De tweede manier is om de schakeloptie --flush-log te gebruiken bij het maken van een back-up. Deze sleutel wordt gesloten oud logboek acties en zal een nieuwe maken. Als iemand tijdens het maken van een kopie iets opschrijft, wordt dit aan het begin van het logboek weergegeven en is het mogelijk om deze wijziging over te dragen naar de database. Vervolgens moet u, om zeker te zijn, na het voltooien van de back-up de opdracht mysqladmin -flush-logs uitvoeren en een kopie achterlaten van het voorlaatste binaire logboek.

Een databaseback-up herstellen

Hier zal het hulpprogramma “mysql” al regeren. Hier is een voorbeeld:

Mysql -uroot -h10.30.30.10 -p site_ru< site_ru.sql

Een andere manier, meer pedant:

Mysql -uroot -p Voer wachtwoord in: Welkom bij de MySQL-monitor. Commando's eindigen met ; of\g. Uw MySQL-verbindings-ID is 35 Serverversie: 5.6.35-1+deb.sury.org~xenial+0.1 (Ubuntu) Copyright (c) 2000, 2016, Oracle en/of zijn dochterondernemingen. Alle rechten voorbehouden. Oracle is een geregistreerd handelsmerk van Oracle Corporation en/of haar dochterondernemingen. Andere namen kunnen handelsmerken zijn van hun respectievelijke eigenaren. Typ "help;" of "\h" voor hulp. Typ "\c" om de huidige invoerinstructie te wissen. mysql> gebruik site_ru; mysql> bron site_ru.sql;

Als uw database is opgeslagen in een gz-archief, kunt u combineren mysql-opdrachten en zcat als volgt:

Zcat site_ru.sql.gz | mysql -uroot -h10.30.30.10 -p site_ru

Meer opties voor het gebruik van mysqldump

We hebben bijvoorbeeld een database nodig in de dev-zone, een sandbox, om zo te zeggen, en de omvang van de hoofddatabase is erg groot. U kunt de sleutel -where="true limit 150" gebruiken, waarbij we expliciet een gegevensvoorbeeld van niet meer dan 150 records opgeven. Hier is een voorbeeld:

Mysqldump -uroot -h10.30.30.10 -p --where="true limit 150" site_ru > site_ru.sql

Als we alleen een structuur zonder gegevens nodig hebben, kunnen we de schakeloptie --no-data gebruiken. Hier is een voorbeeld

Mysqldump -uroot -h10.30.30.10 -p --geen gegevens site_ru > site_ru.sql

Als we slechts een kopie van één tabel nodig hebben, dan is hier een voorbeeldopdracht:

Mysqldump -u root -p testdb tabelnaam > testdb_table_backup.sql

Als we een kopie nodig hebben van triggers, procedures en gebeurtenissen (de ingebouwde planner), dan is hier een voorbeeld:

Mysqldump --no-create-info --no-data --triggers --routines --events -uroot -p site_ru | gzip > ~/database.sql.gz

U kunt ook onmiddellijk een gearchiveerde databasedump maken. Je kunt het als volgt doen:

Mysqldump -uroot -p site_ru | gzip > /pad/naar/site_ru.sql.gz

En u kunt ook de datum opgeven waarop het archief is gemaakt, zoals deze:

Mysqldump -uroot -p site_ru | gzip > `datum +/pad/naar/site_ru.sql.%Y%m%d.%H%M%S.gz`

Sleutels voor het gebruik van mysqldump

Hieronder staan ​​de meest populaire mysqldump-sleutels:

Lijst uitvouwen...

  • --add-drop-database - Voegt een DROP DATABASE-instructie toe vóór elke CREATE DATABASE-instructie.
  • --add-drop-table — Voegt een DROP TABLE-instructie toe vóór elke CREATE TABLE-instructie.
  • --add-locks - Voegt een LOCK TABLES-instructie toe vóór uitvoering en een UNLOCK TABLE-instructie na uitvoering van elke tabeldump (om de toegang tot MySQL te versnellen).
  • --all-databases, -A — Slaat alle tabellen op van alle databases die door de huidige server worden beheerd.
  • --allow-keywords - Sta het maken van kolomnamen toe die overeenkomen met trefwoorden. Het vermijden van conflicten wordt verzekerd door de tabelnaam als voorvoegsel toe te voegen aan de naam van elke kolom.
  • —comments, -i — Met deze parameter kunt u iets toevoegen aan de dump aanvullende informatie, zoals mysqldump-versie, MySQL-versie, hostnaam waar de MySQL-server zich bevindt.
  • --compact Deze optie zorgt ervoor dat mysqldump een dump maakt met het meest compacte formaat dat mogelijk is. De parameter is het tegenovergestelde van -comments.
  • --compatibel=naam — De parameter genereert uitvoer die compatibel is met andere DBMS'en of oudere MySQL-versies. In plaats van het trefwoord naam kunt u het volgende gebruiken: "ansi", "mysql323", "mysql40", "postgresql", "oracle", "mssql", "db2", "maxdb", "no_key_options", "no_table_options", "no_field_options" . U kunt meerdere waarden gebruiken, gescheiden door komma's.
  • --complete-insert, -c — Gebruik de volledige vorm van de INSERT-instructie (met kolomnamen).
  • --create-options - Voegt aanvullende informatie toe aan CREATE TABLE-instructies. Dit kan het tabeltype, de initiële AUTO_INCREMENT-waarde en andere parameters zijn.
  • --databases, -B — Met deze parameter kunt u de namen opgeven van verschillende databases waarvoor u een dump wilt maken.
  • --delayed — Gebruik de opdracht INSERT DELAYED bij het invoegen van rijen.
  • --delete-master-logs - De master-replicatieserver verwijdert automatisch binaire logboeken (logbin) nadat met succes een dump is gemaakt met behulp van mysqldump. Deze optie schakelt automatisch de optie "--stamgegevens" in.
  • --disable-keys, -K - Omring voor elke tabel de INSERT-instructie met de expressies /*!40000 ALTER TABLE tbl_name DISABLE KEYS */; en /*!40000 ALTER TABLE tbl_name ENABLE KEYS */; in de uitvoer van het dumpresultaat. Dit versnelt het laden van gegevens op de server voor tabellen zoals MyISAM, omdat indexen worden gemaakt nadat alle gegevens zijn ingevoerd.
  • --extended-insert, -e — Gebruik de opdracht INSERT met een new syntaxis van meerdere regels(verhoogt de compactheid en prestaties van invoeroperatoren).
  • --flush-logs, -F — Schrijf gegevens naar schijf systeemlog uit de MySQL-serverbuffer voordat u de dump start.
  • --force, -f — Ga door, zelfs als er een fout is opgetreden tijdens het maken van de dump.
  • —hex-blob — Met deze parameter kunt u binaire gegevens weergeven in velden van het type BINARY, VARBINARY, BLOB en BIT in hexadecimaal formaat. De reeks "abc" wordt dus vervangen door 0x616263.
  • --ignore-table=db_name.tbl_name — Maakt het mogelijk dat de tabel tbl_name van de database db_name wordt genegeerd bij het maken van een dump. Als u meerdere tabellen van de dump wilt uitsluiten, moet u verschillende “--ignore-table”-parameters gebruiken, waarbij u in elke parameter één tabel opgeeft.
  • --insert-ignore — Voegt toe trefwoord IGNORE in een INSERT-instructie.
  • --lock-all-tables, -x — Als u deze parameter opgeeft, worden alle tabellen in alle databases vergrendeld terwijl er een volledige dump van alle databases wordt gemaakt.
  • --lock-tables, -l — Als u deze optie opgeeft, worden de tabellen van de database waarvoor de dump wordt gemaakt, vergrendeld.
  • --no-autocommit - Bevat alle INSERT-instructies in dezelfde tabel in één transactie, wat resulteert in sneller laden van gegevens.
  • --no-create-db, -n — Onderdrukt het dumpen van CREATE DATABASE-instructies die automatisch worden toegevoegd bij gebruik van de opties --databases en --all-databases.
  • --no-data, -d — Onderdrukt het maken van INSERT-instructies in de dump, wat handig kan zijn bij het dumpen van een databasestructuur zonder de gegevens zelf.
  • —opt — De parameter is bedoeld om de snelheid van de gegevensback-up te optimaliseren en is een snelkoppeling die de volgende opties bevat: —quick —add-drop-table —add-locks —create-options —disable-keys —extended-insert —lock -tabellen —set-charset . Sinds MySQL 4.1 wordt standaard de optie --opt gebruikt, d.w.z. Alle bovenstaande opties zijn standaard ingeschakeld, zelfs als ze niet zijn opgegeven. Om dit gedrag uit te sluiten, moet u de parameter --skip-opt gebruiken
  • --order-by-primary - Het opgeven van de parameter zorgt ervoor dat dit gebeurt. dat elke tabel wordt gesorteerd op zijn primaire sleutel of eerste unieke index.
  • --poort, -P — Nummer TCP-poort, gebruikt om verbinding te maken met de host.
  • —protocol=(TCP|SOCKET|PIPE|MEMORY) — Met deze parameter kunt u het protocol instellen voor verbinding met de server.
  • —quick, -q — Hiermee kunt u beginnen met het genereren van een dump zonder te wachten volle belasting gegevens van de server en bespaart daardoor geheugen.
  • --quote-names, -Q — Plaats database-, tabel- en kolomnamen in backticks `. Vanaf MySQL 4.1 is deze optie standaard ingeschakeld.
  • --replace — Voegt het trefwoord REPLACE toe aan de instructie INSERT. Deze optie verscheen voor het eerst in MySQL 5.1.3.
  • --result-file=/path/to/file, -r /path/to/file — De parameter stuurt de dump naar bestand bestand. Deze optie is vooral handig in Windows, zonder gebruik te maken van de opdrachtregel. wanneer u het resultaat naar een bestand kunt omleiden met behulp van de reeksen > en >>.
  • --routines, -R — Deze optie creëert een dump van opgeslagen procedures en functies. Beschikbaar met MySQL 5.1.2.
  • --single-transaction - De optie creëert een dump als een enkele transactie.
  • —skip-comments — Met deze parameter kunt u de uitvoer van aanvullende informatie naar de dump onderdrukken.
  • --socket=/path/to/socket, -S /path/to/socket — Socketbestand voor verbinding met localhost.
  • —tab=/path/, -T /path/ — Wanneer u deze parameter gebruikt, worden er twee afzonderlijke bestanden gemaakt in de padmap voor elke tabel: tbl_name.sql, die de CREATE TABLE-instructie bevat, en tbl_name.txt, die de door tabs gescheiden tabelgegevens. Het gegevensformaat kan expliciet worden overschreven met behulp van de opties --fields-xxx en --lines-xxx.
  • --tables - Overschrijft de parameter --databases (-B). Alle argumenten na deze parameter worden behandeld als tabelnamen.
  • —triggers — Creëert een dump van triggers. Deze optie is standaard ingeschakeld. Om het uit te schakelen, gebruikt u de optie --skip-triggers.
  • --events, -E — Creëert een gebeurtenisdump. Zie MySQL Event Scheduler of de ingebouwde gebeurtenismanager in MySQL.
  • —tz-utc — wanneer deze parameter wordt gebruikt, wordt een operator zoals SET TIME_ZONE=’+00:00′ aan de dump toegevoegd, waardoor dumps in verschillende tijdzones kunnen worden uitgewisseld.
  • --verbose, -v — Uitgebreide uitvoermodus. Conclusie meer gedetailleerde informatie over de werking van het programma.
  • --version, -V — Informatie weergeven over de programmaversie.
  • —where=’where-condition’, -w ‘where-condition’ — Dump alleen de geselecteerde records. Houd er rekening mee dat aanhalingstekens vereist zijn.
  • --xml, -X — Representeert de databasedump als XML.
  • --first-slave, -x — Vergrendelt alle tabellen in alle databases.
  • —debug=…, -# — Bewaak de voortgang van het programma (voor foutopsporing).
  • --help — Uitvoer achtergrondinformatie en verlaat het programma.

Gegroet, vrienden! 🙂

Vandaag besloot ik het gesprek over het werken met MySQL in de console voort te zetten en aandacht te besteden aan de procedure voor het exporteren van een MySQL-database.

In dit artikel zal ik het hebben over het dumpen van een MySQL-database en het uploaden van gegevens van MySQL naar Excel-bestand en csv-formaat.

Wij zullen overwegen verschillende opties bemonsteringsinformatie uit: het creëren van een dump van een of meerdere databases, het exporteren van gegevens uit individuele tabellen en willekeurige resultaten SELECTEER verzoeken.

We zullen ook praten over hoe u gegevens uit een MySQL-database kunt uitvoeren in de serverconsole en de MySQL-opdrachtregel.

In dit artikel zal ik het niet hebben over het exporteren van gegevens met behulp van phpMyAdmin en andere visuele hulpmiddelen.

Ten eerste omdat er op internet al voldoende materiaal over dit onderwerp te vinden is. Bovendien is het materiaal van hoge kwaliteit, dat ik niet graag kopieer en plak.

En ten tweede heb ik het proces van het uitvoeren van informatie uit de MySQL-database al kort besproken SQL-bestand in een van zijn artikelen, waar hij over sprak.

Dus als je dat niet bent professionele ontwikkelaar of systeembeheerder, die informatie over het werken met de console wellicht nuttig vindt, en u kwam alleen voor instructies over hoe u de database naar phpMyAdmin kunt exporteren, dan kunt u zich beperken tot het lezen van de informatie via de bovenstaande link.

Ik wil dat u mij goed begrijpt: ik wil u op geen enkele manier beledigen, maar ik wil alleen dat u uw tijd besteedt met maximaal voordeel voor uw bedrijf en krijgt waar u naar op zoek was.

Dit is het inleidende deel en we gaan verder met een overzicht van consoleopdrachten voor het maken van een MySQL-databasedump, die ik heb besloten te sorteren op de hoeveelheid gegevens die wordt opgeslagen: beginnend met het exporteren van de hele database, eindigend met individuele tabellen en de resultaten van willekeurige vragen.

Een MySQL-databasedump maken via de console

Ik wil eerst een kleine verduidelijking geven.

Databasedump is een bestand met set SQL opdrachten waarmee u, wanneer u deze start, databases en tabellen kunt maken en deze met informatie kunt vullen. De dump is nodig voor degenen die een MySQL-database willen downloaden om deze naar een andere server of binnen een bestaande server te kopiëren.

En als iemand het niet weet: een back-up van een MySQL-database is in wezen een dump ervan die in een bepaalde periode is gemaakt, waardoor u indien nodig de structuur en gegevens van de database kunt herstellen.

Gegevens exporteren is simpelweg het extraheren van informatie uit tabellen tekstvorm Voor verder werk met tekst- of grafische editors.

Daarom zullen de opdrachten voor deze acties enigszins verschillen.

Om een ​​databasedump te maken, heeft MySQL een ingebouwd hulpprogramma genaamd mysqldump, die buiten de MySQL-opdrachtregel in de serverconsole of een andere shell moet worden gebruikt.

Dus voor de eenvoudigste en meest gebruikelijke optie: gegevens uit een specifieke database exporteren naar MySQL-console Om het naar een andere server of interne kopie over te brengen, moet u de volgende opdracht uitvoeren:

Mysqldump -u gebruikersnaam -p databasenaam > pad_en_dump_bestandsnaam

Dit hulpprogramma kan alleen MySQL-databasedumps maken in de vorm van bestanden met SQL-opdrachten, dus ongeacht welke extensie u voor uw bestand kiest, de inhoud ervan zal in ieder geval hetzelfde zijn. En vergeet niet de schrijfrechten te controleren van de map waarin het zich zal bevinden voordat u informatie uit MySQL exporteert, zodat het bestand kan worden gemaakt.

Als u plotseling een dump moet maken met alle databases op de server, gebruik dan volgende optie commando's:

Mysqldump -u gebruikersnaam -p --alle databases > pad_en_dump_bestandsnaam

Om slechts een paar specifieke databases te dumpen, moet u mysqldump aanroepen met de volgende parameters:

Mysqldump -u gebruikersnaam -p --databases database_naam1, database_naam2, ... > pad_en_dumpbestandsnaam

Als gevolg hiervan ontvangt u in elk geval een MySQL-databasedump met opdrachten voor het creëren van de structuur van de tabellen (velden, hun typen, indexen, sleutels, enz.), evenals bewerkingen voor het vullen ervan met gegevens.

Deze optie is alleen geschikt voor het herstellen en kopiëren van volledige databases.

Hoe u back-ups kunt maken van bepaalde MySQL-tabellen en hun gegevens kunt ontvangen leesbare vorm, we praten verder.

Een MySQL-tabel dumpen en gegevens exporteren

Om een ​​dump van bepaalde MySQL-databasetabellen te maken, hebben we hetzelfde hulpprogramma nodig mysqldump, aangeroepen met de volgende parameters:

Mysqldump -u gebruikersnaam -p databasenaam tabelnaam1, tabelnaam2, ... > pad_en_dumpbestandsnaam

Wanneer u mysqldump aanroept, kunt u de vereiste tabellen opgeven als parameterwaarde --tafels, wanneer de parameter wordt gebruikt --databases zal worden genegeerd:

Mysqldump -u gebruikersnaam -p --databases databasenaam1, database_naam2 --tabellen tabelnaam1, tabelnaam2, ... > pad_en_dumpbestandsnaam

In het bovenstaande voorbeeld wordt de volgende fout weergegeven:

Mysqldump: Kreeg foutmelding: 1049: Onbekende database "database_name1", bij het selecteren van de database

Zoals u kunt zien, wordt alleen de nieuwste database uit de lijst gebruikt. In principe is dit gedrag vrij logisch, omdat Het is mogelijk dat de opgegeven tabellen niet in alle databases voorkomen.

Oké, we hebben een dump met MySQL-databasetabellen ontvangen. Het kan worden gebruikt om ze te herstellen of samen met de structuur te kopiëren.

Maar wat als u de informatie die erin is opgeslagen, bij voorkeur in een leesbare vorm wilt hebben, zodat u deze naar de manager kunt sturen en in een gewone tekst- of spreadsheeteditor kunt bekijken? MySQL heeft hier ook tools voor.

De mogelijkheid om het nutsbedrijf te bellen zal ons helpen onze plannen te verwezenlijken mysql vanaf de console met bepaalde parameters:

Mysql -u gebruikersnaam -p databasenaam -e "SELECT * FROM tabelnaam"

Met deze opdracht kunnen we een verzoek naar de vereiste database uitvoeren en het resultaat in de console weergeven zonder erop in te gaan opdrachtregel MySQL.

Om de gegevens niet naar de console uit te voeren, maar om deze naar een bestand te schrijven, moet u de opdracht als volgt aanvullen:

Mysql -u gebruikersnaam -p -e "SELECT * FROM tabelnaam" > pad_en_bestandsnaam

Dankzij deze constructies kunnen we niet alleen gegevens verkrijgen die in alle velden van de tabel zijn opgeslagen, maar ook in specifieke velden. Om dit te doen, vervangt u gewoon het jokertekens (*)-symbool door de vereiste tekens, gescheiden door komma's.

Als gevolg hiervan zal de uitvoer een gewoon tekstbestand zijn dat de namen van de velden in de vorm van een koptekst bevat, en informatie daarover voor alle records. Het kan normaal worden geopend teksteditor, ongeacht welke resolutie u eraan geeft bij het maken ervan.

Als u gegevens uit een MySQL-database in xls- of csv-formaat wilt exporteren, zodat het resulterende bestand correct wordt weergegeven in spreadsheet-editors, dan zullen we u later vertellen hoe u dit moet doen :)

Back-ups maken en gegevens uit een MySQL-database uitvoeren met behulp van queries

We hebben gesproken over hoe je een MySQL-database kunt dumpen - een of meerdere, maar ook individuele tabellen. Maar soms zijn er in de praktijk gevallen waarin u een dataset moet exporteren die niet beperkt is tot één tabel. Of u hoeft slechts enkele gegevens uit de tabel te selecteren.

Vooral ontwikkelaars van bedrijfsprojecten worden hier vaak mee geconfronteerd als managers hen vragen allerlei statistische gegevens aan te leveren. Of wanneer u een back-up van een bepaald deel van de tabel moet maken om deze snel te kunnen herstellen.

Voor back-up hebben we hetzelfde hulpprogramma nodig mysqldump, die als volgt moet worden aangeroepen:

Mysqldump -u gebruikersnaam -p databasenaam tabelnaam --waar "opzoeken" > pad_en_dump_bestandsnaam

Als gevolg hiervan ontvangen we een bestand met SQL-opdrachten om een ​​tabel met de volledige structuur te maken, die na het maken wordt gevuld met informatie die is geselecteerd met behulp van een opzoekquery.

Als we alleen de gegevens in een of meer tabellen willen opslaan, moeten we de opdracht die in het vorige geval werd gebruikt wijzigen bij het ophalen van alle gegevens in de tabel, alleen met enkele verduidelijkingen:

Mysql -u gebruikersnaam -p -e "SELECT * VAN tabelnaam WAAR opzoeken" > pad_en_bestandsnaam

Zoals u begrijpt, wordt naast de verschillende verduidelijkingen die in het verzoek zijn gespecificeerd, gebruik gemaakt van de richtlijn WAAR, je kunt andere gebruiken SQL-constructies: MEEDOEN, UNIE enz.

Je kunt alle statistieken verzamelen die je wilt :)

Dezelfde actie kan ook worden uitgevoerd wanneer u op de MySQL-opdrachtregel werkt met behulp van de volgende opdracht:

SELECT * VAN database_tabel WAAR opzoeken IN OUTFILE "pad_en_bestandsnaam";

Deze opdracht is specifiek ontworpen om bestanden met bemonsteringsresultaten te maken. Bovendien kunnen de resultaten niet alleen naar bestanden worden geëxporteerd, maar ook naar variabelen worden geschreven, en kunnen de uitvoergegevens op verschillende manieren worden opgemaakt.

Als het bovenstaande uw geval is, kunt u hier een volledige lijst met parameters en opties vinden om deze opdracht aan te roepen - https://dev.mysql.com/doc/refman/5.7/en/select-into.html

Aan het einde van zijn korte excursie voor mysqldump zou ik een optie willen geven voor het aanroepen van een commando met een lijst met parameters om een ​​geoptimaliseerde dump van de MySQL-database en -tabellen te maken, waarbij het herstellen van de database en individuele tabellen minder tijd zal kosten dan bij een gewone aanroep:

Mysqldump -u gebruikersnaam -h host_of_IP_MySQL_server -p --no-autocommit --opt database_name > pad_en_dump_bestandsnaam;

Omwille van het experiment heb ik gebruikt deze optie om een ​​MySQL-database van 143 MB groot te dumpen. Het daaropvolgende herstel duurde 59 seconden, vergeleken met 1 minuut en 3 seconden toen de database werd hersteld vanaf een dump die was gemaakt door mysqldump aan te roepen zonder speciale parameters.

Ik ben het ermee eens dat dit een kleinigheid is. Maar dit is alleen voor het geval dat gegeven volume gegevens. Als je gebruikt deze techniek bij het maken van een dump groter dan 1 GB zal het verschil groter zijn.

Als u een dergelijke situatie tegenkomt, vergeet dan niet eerst de MySQL-databasedump te archiveren. Het beste is tar.gz. Dan zal het herstel nog minder tijd in beslag nemen.

Exporteer gegevens van MySQL naar Excel- en csv-bestanden

Niet voor niets heb ik in één blok informatie over het uitvoeren van informatie uit MySQL naar deze twee formaten gecombineerd, omdat... ze lijken erg op elkaar, ze worden ongeveer op dezelfde manier gebruikt (om informatie in de vorm van tabellen te structureren) en dezelfde exportopdrachten worden aangeroepen.

Zoals u weet, is het enige significante verschil tussen deze formaten dat xls-extensie en xlsx hebben bestanden die in het programma zijn gemaakt Microsoft Office Excel, dat alleen op Windows werkt, maar csv-bestand s zijn universeler en bewerkingen ermee zijn in veel editors mogelijk.

Dit betekent niet dat xls overal beschikbaar is behalve Microsoft Kantoor Excel, gaat niet open. Hetzelfde OpenOffice bevestigt het tegenovergestelde.

Maar voor zo'n mogelijkheid deze steun moet aanwezig zijn in het softwareproduct. csv-bestanden zijn zelfs leesbaar in een gewone teksteditor zoals Kladblok, maar dit formulier zal niet volledig leesbaar zijn.

Laat ik beginnen met het feit dat alleen resultaten naar xls of csv kunnen worden geëxporteerd SQL-query's, waar we eerder mee leerden werken, omdat Het zal onmogelijk zijn om de hele database in één keer in één bestand uit te voeren.

Ten eerste is dit niet optimaal, omdat... Het is onwaarschijnlijk dat een dergelijk bestand wordt geopend als er een grote hoeveelheid informatie in de database is opgeslagen. En ten tweede is het niet duidelijk hoe de informatie in het bestand in tabellen en velden moet worden opgesplitst.

Nee, het is natuurlijk mogelijk om dit te doen, maar het is onwaarschijnlijk dat dit met één commando wordt gedaan en in het algemeen is het onwaarschijnlijk dat iemand dit in de console zal doen. Ik denk dat je voor deze doeleinden speciale software of op zijn minst een script nodig hebt.

Als je ineens weet hoe je informatie uit de hele MySQL-database tegelijk naar een of meerdere xls-bestanden in de console kunt exporteren, schrijf er dan over in de reacties. Ik denk dat het voor velen nuttig zal zijn om hierover te lezen.

Dus als we het hebben over het exporteren van gegevens van MySQL naar xls en csv, dan kan dit rechtstreeks in de serverconsole worden gedaan via het hulpprogramma mysql of in, het werk waarmee ik je in mijn vorige artikel introduceerde.

Laten we op volgorde beginnen.

U kunt gegevens uit een MySQL-database rechtstreeks in de serverconsole naar csv- en xls-formaten exporteren met behulp van de volgende opdrachten.

Op Linux systemen:

Mysql -u gebruikersnaam -d databasenaam -p -e "SELECT * FROM database_table;" | sed "s/"/\"/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > pad_en_bestandsnaam. csv

Indien absoluut noodzakelijk kunt u met dit commando in principe MySQL-gegevens naar een Excel-bestand exporteren. Maar eerlijk gezegd heb ik hier in de praktijk nog niet mee te maken gehad en ik heb geen idee wat er uiteindelijk uit zal komen, want... Ik ben momenteel bezig met Windows. Als u deze opdracht onder Linux gebruikt, schrijf dan in de opmerkingen over de resultaten van uw werk. Ik denk dat de informatie voor iedereen interessant zal zijn.

Op Ramen:

Gegevens exporteren van MySQL-tabellen in csv met de bovenstaande opdracht in in dit geval, helaas zal het niet mogelijk zijn, omdat Windows heeft, in tegenstelling tot Linux, geen ingebouwde console-opdracht voor het werken met threads, wat in Linux zit.

Natuurlijk kun je het installeren, maar het is te veel gedoe. Als alternatief kunt u gebruiken CygWin- emulator Linux-consoles voor Windows-systemen.

Het is goed als je het al hebt geïnstalleerd. Anders zal het exporteren van gegevens uit de MySQL-database met behulp van de gekozen methode ons te veel problemen opleveren.

Maar het extraheren van informatie in een xls-bestand is net zo eenvoudig als 5 kopeken :) Het is heel gemakkelijk om het te starten op de volgende manier die ik persoonlijk heb geprobeerd:

Mysql -u gebruikersnaam -d databasenaam -p -e "SELECT * FROM database_table;" > pad_en_bestandsnaam.xls

Dit bestand werd zonder problemen geopend in Microsoft Office Excel. Het enige is dat bij het openen een bericht op het scherm werd weergegeven met de waarschuwing dat het daadwerkelijke formaat van het geopende bestand afwijkt van de opgegeven extensie.

Maar bij het bevestigen van de actie werd het document zonder problemen geopend - alle informatie werd verdeeld in cellen in de vorm waarin het in de tabel zelf was opgeslagen.

Ik weet het niet, misschien zullen er in de toekomst problemen ontstaan ​​als je specifieke acties uitvoert in Microsoft Office Excel; zo diep heb ik niet gegraven. Wanneer u gegevens normaal bekijkt, ten minste, Ik heb niets ongewoons gezien.

Als u problemen ondervindt bij het gebruik van het xls-bestand dat uit MySQL is geëxporteerd, in dit programma of in andere programma's, laat het me dan weten in de reacties.

Met de hierboven beschreven methode kunt u in principe de inhoud van een MySQL-database exporteren naar een csv-bestand. Maar dan worden de gegevens uit verschillende velden van de tabel massaal geschreven, zonder scheidingstekens, wat mogelijk niet goed wordt weergegeven in de tabel. diverse programma's voor het werken met tabellen, waarin ze meestal met csv-bestanden werken.

Het maakt OpenOffice overigens niets uit :) Het scheidde automatisch de informatie die werd verkregen door de manier waarop we de inhoud van de MySQL-database naar xls exporteerden. Ik weet niet hoe hij het doet, maar ik raad aan om het te gebruiken :)

Welnu, dezelfde Microsoft Office Excel gaf alle informatie weer die overeenkomt met één record in de tabel en schreef deze in één cel zonder scheidingstekens. Ik denk dat op een vergelijkbare manier Er komen meer tabeleditors.

Daarom moet u bij het exporteren van een MySQL-database naar csv-bestanden dit doen door de informatie te scheiden speciale karakters, waargenomen door de redactie.

En toen benaderde ik geleidelijk de tweede methode MySQL-export gegevens in csv en xls, waarbij de MySQL-opdrachtregel wordt gebruikt.

Om MySQL-gegevens op deze manier naar een csv-bestand te exporteren, hebben we dus de volgende opdracht nodig:

SELECTEER * VAN database_tabel IN OUTFILE "pad_en_bestandsnaam.csv" VELDEN BEËINDIGD DOOR "," INGESLOTEN DOOR """ REGELS BEËINDIGD DOOR "\n";

Als gevolg van de uitvoering ervan ontvangt u een csv-bestand in het pad dat u hebt opgegeven bij het bellen, dat correct wordt geopend in de meeste moderne spreadsheet-editors. Voor het geval dat, herinner ik je eraan dat je moet vluchten deze opdracht alleen nodig na verbinding met een MySQL-database.

Deze opdracht is ook ideaal voor het exporteren van MySQL-gegevens naar een xls-bestand voor correcte weergave in Microsoft Office Excel. Alleen in dit geval hebben we geen scheidingstekens nodig, omdat ze zullen de verdeling van informatie in cellen verstoren:

SELECTEER * VAN database_tabel IN OUTFILE "pad_en_bestandsnaam.xls";

In de praktijk is echter niet alles zo eenvoudig als ik heb beschreven. Terwijl u de opdracht uitvoert, kunt u in de console de volgende fout tegenkomen, waardoor de export niet kan worden voltooid:

ERROR 1290 (HY000): De MySQL-server draait met de optie --secure-file-priv en kan deze instructie dus niet uitvoeren

Het wordt veroorzaakt doordat uw MySQL-server met deze optie is gestart --secure-file-priv. Persoonlijk kwam ik dit probleem tegen vanwege het feit dat ik voor het werken in de console de MySQL-distributiekit gebruik die is opgenomen in de WAMP OpenServer-kit, die op zijn beurt de MySQL-server op deze manier lanceert.

Er zijn twee manieren om het probleem op te lossen:

De eerste methode leek mij te ingewikkeld, omdat... Ik zou me moeten verdiepen in de OpenServer-configuratie, die niet door mij is geschreven met alle daaruit voortvloeiende omstandigheden 🙂 Daarom besloot ik de tweede weg te bewandelen. Als je tegenkomt soortgelijk probleem- herhaal na mij.

Eerst moet u naar de MySQL-opdrachtregel gaan en een van de volgende opdrachten uitvoeren:

TOON VARIABELEN ZOALS "secure_file_priv"; SELECTEER @@GLOBAL.secure_file_priv;

Het resultaat van het uitvoeren van beide is de waarde van de globale MySQL-variabele secure_file_priv, dat het pad bevat naar de map waarmee MySQL-gegevensexport- en -importbewerkingen kunnen worden uitgevoerd (in de toekomst een link naar een artikel over gegevensimport).

Die. bij het gebruik van commando's GEGEVENS LADEN En SELECTEER... IN OUTFILE geëxporteerde en geïmporteerde bestanden kunnen alleen in deze map worden geplaatst.

In mijn geval was deze variabele over het algemeen ingesteld op NUL, omdat Ik gebruik, zoals ik al zei, MySQL-hulpprogramma's uit de distributie in OpenServer om in de console te werken. Deze waarde gaf aan dat de MySQL-gegevensexport- en importbewerkingen met behulp van de opgegeven opdrachten volledig waren gesloten.

Zoals later bleek, is dit een veel voorkomende situatie bij het gebruik van boxed WAMP- en MAMP-servers.

Helaas was het in mijn geval niet mogelijk om de gebruikelijke methoden te gebruiken om de waarden van de globale MySQL-variabelen te wijzigen:

SET variabele_naam = waarde;

Als gevolg hiervan zag ik alleen de volgende fout in de console:

ERROR 1238 (HY000) op regel 1: Variabele "secure_file_priv" is een alleen-lezen variabele.

Als gevolg hiervan kunt u de waarde van een variabele wijzigen secure_file_priv en de export- en importbewerkingen te openen, moest ik naar het MySQL-configuratiebestand mysql.ini gaan, dat zich in de hoofdmap van de MySQL-distributie bevindt, of op een andere manier toegankelijk is als MySQL is opgenomen in uw WAMP/LAMP/ MAMP-server bouwen.

Trouwens, als je het pad naar de spoolmap voor bestandsuitwisseling wilt wijzigen, moet je hetzelfde doen.

In mijn geval bestond deze variabele al in de configuratie, alleen in commentaarvorm:

Secure-file-priv = "%dprogdir%\\userdata\\temp"

Als je het niet hebt, schrijf het dan helemaal opnieuw in de sectie (althans voor mij was het daar gevestigd).

Ik heb het commentaar verwijderd en besloten het te gebruiken in de vorm waarin het was geschreven. Die. bij het exporteren van gegevens uit MySQL en het terug importeren ervan, worden mijn bestanden nu in een map opgeslagen c:\openserver\gebruikersdata\temp\.

Vergeet na het wijzigen van de configuratie (wie dan ook trouwens) niet om uw server of een aparte service waarvan u de instellingen heeft bewerkt, opnieuw op te starten, indien mogelijk, om de wijzigingen door te voeren!

Geef voor de zekerheid de variabele opnieuw weer nadat u de MySQL-server opnieuw hebt opgestart secure_file_priv en kopieer de waarde naar het klembord.

En nu moeten we de opdracht aanroepen zoals aan het begin, alleen vóór de naam van het bestand waarin informatie uit de MySQL-database zal worden opgeslagen, het pad schrijven dat is opgeslagen in de variabele die we veranderen in de volgende vorm:

SELECTEER * VAN database_tabel IN OUTFILE "secure_file_priv_value\file_name.csv";

Hierna werkte het exporteren van gegevens uit MySQL in mijn geval.

Belangrijk punt! Als u met MySQL onder Windows werkt, vergeet dan niet om “\” te wijzigen in “/” bij het opgeven van het pad naar het bestand, anders wordt de fout weergegeven --secure-file-priv zal nog steeds verschijnen.

Dit is het artikel over het dumpen van een MySQL-database en de bijbehorende tabellen, en over het uitvoeren van gegevens uit MySQL-tabellen naar verschillende formaten, loopt ten einde. Schrijf uw beoordelingen in de opmerkingen en deel met iedereen uw scriptopties die u in de praktijk het vaakst gebruikt.

Als je het artikel leuk vond, kun je de auteur bedanken door het artikel opnieuw te plaatsen in sociale media of financieel via onderstaand formulier, zodat u de basishosting kunt betalen.

Veel succes allemaal en tot ziens! 🙂

P.S.: heeft u een website nodig of wilt u wijzigingen aanbrengen in een bestaande, maar heeft u daar geen tijd of zin voor, dan kan ik u van dienst zijn.

Meer dan 5 jaar ervaring professionele websiteontwikkeling. Werken met PHP

Het idee van het artikel is om een ​​hoogwaardige handleiding te maken voor het installeren en werken met het mysqldump-programma. Veel voorbeelden gebruiken en alles verzamelen handige opties en parameters voor het werken met dit hulpprogramma. Het is moeilijk om alles in één artikel te passen, dus alles zal kort en bondig zijn. Als iemand iets verkeerd begrijpt, reageer dan op het artikel.

Secties:

Installatiemijnsqldump:

Wat is mysqldump?

MijnSQLdump- Dit serverapplicatie, waarmee u een back-up kunt maken van databases (hierna dump genoemd) en deze kunt opslaan apart bestand. Tegelijkertijd kunt u flexibele dumpinstellingen maken: meerdere of alle databases, archiveren in gzip, lock toevoegen, drop-opdrachten en nog veel meer. Ook mogelijk omgekeerde import back-ups van databases. Kan gedaan worden met met behulp van PHP, maar dit is onaanvaardbaar voor grote projecten met veel gegevensgewicht.

Dit programma is erg handig bij het exporteren en importeren van gegevens uit een database. Het kan standaard op uw hosting worden geïnstalleerd (om precies te zijn mysql-server). Maar om uw vaardigheden in het werken met mysqldump aan te scherpen en te leren hoe u het kunt installeren, kunt u het op denwer installeren. Dat is wat we nu gaan doen.

Mysqldump downloaden

U kunt het mysqldump-programma altijd downloaden op onze website en het downloaden van de applicatie is volledig gratis. Download mysqldump via de directe link hieronder.

Hoe installeer ik mysqldump?

Wij installeren op lokaal Denwer-server. Het installeren van de applicatie is eenvoudig en eenvoudig. Volg hiervoor de onderstaande instructies en schermafbeeldingen.

1. Kopieer het bestand mysqldump.exe naar de map Denver:

D:\WebServers\usr\local\mysql5\bin\
In dit geval heeft u mogelijk een iets andere naam voor de map mysql5, bijvoorbeeld mysql-5.1 of enigszins gewijzigd. Daarom, voor meer duidelijkheid, hieronder een screenshot:

2. Start Denver

Jij weet vast wel hoe je Denwer moet lanceren.


3.Start de console:

Start->Uitvoeren->cmd.exe of in Windows 7: Start->Zoeken->Invoerencmd.exe->Binnenkomen, zoals weergegeven in de schermafbeelding:

4. Testen:

Ga met behulp van de opdrachten in de console naar de virtuele schijf van Denver (ik heb W:\) en naar de map met de mysqldump-applicatie. Om de uitvoering van de opdracht te bevestigen, drukt u op Enter.

Voer de opdrachten in:

W:- ga naar de virtuele schijf van Denver

CDusr\lokaal\mysql5\bak– ga naar de map met de applicatie

mysqldump -uroot uw_db_naam>bestandsnaam.sql– testen, een willekeurige database in een bestand dumpen, dat in de bin-map wordt opgeslagen.

Mijn installatie was succesvol, ik hoop dat die van jou dat ook is. In de map bin vinden we het databaseback-upbestand. Lees de volgende gedeelten van het artikel om te leren hoe u het programma breder kunt gebruiken.

Aan de slag: database exporteren en importeren

Database-export

We hebben de applicatie al geïnstalleerd en geleerd hoe we de console moeten gebruiken. We hebben al een testdump gedaan. Laten we nu een eenvoudige databasedump doen in de map die we nodig hebben. Om dit te doen, heb ik een eerder gebruikte database gemaakt met de naam "test". Het bevindt zich op de lokale Denwer-server. Hieronder worden verstrekt stap voor stap opdrachten console voor het dumpen van de testdatabase in de gewenste map en het gewenste bestand.

W: cdusr\local\mysql5\bin mysqldump -uroot test>D:\test\easydump.sql

De onderstaande schermafbeelding toont het dumpbestand in de testmap:

Het exporteren is succesvol voltooid. Laten we nu proberen dit bestand terug naar onze server te importeren.

Database importeren

Om de database te importeren, wist u de database in phpmyadmin en gebruikt u de volgende opdracht in cmd.exe:

Mysql -uroot-test

Belangrijke opmerking: als we bij het exporteren gebruik maakten van mysqldump..., en bij het importeren moet je de opdracht starten met mysql. Dit voorbeeld is een basisgebruik van de mysqldump-toepassing om databaseback-ups te maken. Nog meer opdrachten en voorbeelden vindt u in de sectie en het artikel.

MySQLdump-voorbeelden

Hieronder staan ​​de meest gebruikte voorbeelden van het gebruik van mysqldump. Waarmee u niet alleen back-ups kunt maken, maar ook enkele parameters kunt toevoegen back-up: compressie met gzip, back-updatum toevoegen, slechts een paar tabellen of databasestructuur dumpen, flexibele instellingen gebruiken. Met deze instellingen kunt u de snelheid van de dumpuitvoering verhogen en spaarzaam gebruik maken van schijfruimte.

Een stortplaats creëren

mysqldump –uUSER -h82.82.82.82 -pPASSWORD DATABASE > /pad/naar/bestand/dump.sql

-u of --gebruiker=...- gebruikersnaam

-H of --gastheer=... - externe gastheer(voor localhost kunt u deze parameter weglaten)

-P of --wachtwoord- vraag een wachtwoord aan

database- naam van de geëxporteerde database

/pad/naar/bestand/dump.sql- pad en bestand voor dump

We dumpen verschillende databases, hiervoor gebruiken we het --databases attribuut of kortweg –B, zie onderstaand voorbeeld:

Mysqldump -uroot -h82.82.82.82 -p -B database1 database2 database3 > databases.sql

Als u een dump van alle databases wilt maken, moet u de parameter –all-databases of –A in verkorte vorm gebruiken, zie het voorbeeld:

Mysqldump -uroot -h82.82.82.82 -p -A > alle databases.sql

Een databasestructuur creëren zonder gegevens

Om dit te doen, moet u de parameter --no-data gebruiken, zoals weergegeven in het onderstaande voorbeeld:

Mysqldump --no-data - uUSER -pPASSWORD DATABASE > /pad/naar/bestand/schema.sql

We maken een dump van slechts één of meerdere databasetabellen

mysqldump -uUSER -pPASSWORD DATABASE TABEL1 TABEL2 TABEL3 > dump.sql

Maak een dump en archiveer dezegzip

mysqldump -u GEBRUIKER -pPASSWORD DATABASE | gzip > /pad/naar/uitvoerbestand.sql.gz

Maak een dump met de datum in de bestandsnaam

mysqldump -uUSER -pPASSWORD DATABASE | gzip > `datum +dump.sql.%Y%m%d.%H%M%S.gz`

Extra attributen gebruiken

mysqldump -Q -c -e -uUSER -pPASSWORD DATABASE > /pad/naar/bestand/dump.sql

Zoals eerder vermeld, verkleinen deze kenmerken de uiteindelijke bestandsgrootte en versnellen ze het back-upproces. Meer precies:

-Q plaatst namen tussen aanhalingstekens

-C voert een volledige invoeging uit, inclusief kolomnamen

-e maakt een verlengde inzet.

Vandaag wil ik het hebben over databasedumps. Deze zin zelf was ooit beangstigend, hoewel er over het algemeen niets engs in zit. Dus eerst, en belangrijkste vraag: wat is een databasedump? Het antwoord hierop is onverwacht eenvoudig: een databasedump is een bestand met de inhoud ervan, waarmee u de database helemaal opnieuw kunt herstellen. Die. het is slechts een kopie ervan. Dus waarom wordt de databasedump geen “databasekopie” genoemd? Het punt is dat een dump zelf geen database is, maar dat je hem alleen opnieuw kunt maken. Het punt is dat de database erin kan worden opgeslagen verschillende bestanden afhankelijk van de databaseversie, van het type besturingssysteem en andere factoren. Die. Het vinden van alle bestanden van één database in een systeem en het overbrengen ervan naar een ander systeem is erg moeilijk. Om deze taak te vergemakkelijken, wordt een databasedump gebruikt.

Waarom is het nodig om de database over te zetten?

Ten eerste om back-ups of herstelpunten te maken voordat u belangrijke wijzigingen in de structuur aanbrengt - om terug te kunnen draaien als er zich problemen voordoen. U hebt bijvoorbeeld een component van derden geïnstalleerd, maar als gevolg daarvan bleek de site onbruikbaar en moet u de werking ervan snel herstellen. Dit is waar de noodzaak ontstaat om een ​​databasedump te gebruiken.

Ten tweede wordt bij het maken van een website dit meestal eerst gedaan lokale machine onder een virtuele webserver en pas daarna overgebracht naar hosting. En als alles min of meer duidelijk is bij het overbrengen van bestanden, dan is het overbrengen van de database een taak die niet zo voor de hand liggend oplosbaar is. Ook hier kun je niet zonder een databasedump.

Dus we hebben ontdekt wat een databasedump is. De enige vraag die overblijft is hoe je het moet gebruiken. Laten we eens kijken naar een standaardtaak bij webprogrammering: het overbrengen van een website die op een lokale machine is gemaakt naar webhosting. Ik zal de overdracht van bestanden niet in detail beschrijven; ik zal me concentreren op databases. We hebben dus een MySQL-database en de taak om deze over te zetten naar webhosting. Om het wiel niet opnieuw uit te vinden, gebruiken we het veelgebruikte hulpprogramma phpMyAdmin, dat in de regel altijd door uw provider wordt geïnstalleerd en ook in Denver wordt meegeleverd. Uiteindelijk is het hulpprogramma ook gratis en beschikbaar om te downloaden op de officiële website. Het draait op een webserver en is geschreven php-taal, waarmee u het rechtstreeks in de browser kunt gebruiken. Die. Er zouden hier geen problemen moeten zijn. Als ze zich voordoen, schrijf dan in de reacties en we zullen het oplossen.

Laten we beginnen met het maken van een databasedump. Open phpMyAdmin, selecteer de database die we nodig hebben en klik op het "tabblad" Exporteren". Als resultaat zou je zoiets als dit moeten krijgen:

Hier moet u alle tabellen selecteren (of de tabellen waarin u wijzigingen moet terugdraaien) en het keuzerondje plaatsen SQL-waarde. In de sectie Structuur kunt u het eerste veld "Add DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT" markeren, zodat voordat de dump wordt geïmporteerd, de overeenkomstige tabellen in de doeldatabase voor de eerste keer worden verwijderd; het selectievakje kan uitgeschakeld blijven. In hetzelfde venster hieronder zien we de sectie “Opslaan als bestand”:

Markeer eigenlijk "Opslaan als bestand" en schrijf de gewenste bestandsnaam. Een databasedump kan worden gearchiveerd, maar is doorgaans niet groot genoeg om het comprimeren van het bestand de moeite waard te maken. Klik op de knop "GO" en krijg een standaard venster voor het opslaan van bestanden in de browser:
. Het opgeslagen bestand is de databasedump. Als je het in hetzelfde notitieblok opent, zie je aan het begin van een regel zoiets als

PhpMyAdmin SQL-dump
-- versie 3.2.3
-- http://www.phpmyadmin.net

Het bestand zelf bestaat uit queries om waarden aan te maken en in te voegen in een tabel, geschreven in SQL-taal. Er is hier absoluut geen sprake van sjamanisme, alles is heel duidelijk. De volgende taak is nu het importeren van de dump. Er is ook niets ingewikkelds aan haar. Ga naar uw hostingcontrolepaneel, zoek daar phpMyAdmin en start het. Mogelijk moet u een login/wachtwoord opgeven, afhankelijk van de hostinstellingen. Welnu, dan zijn de acties vergelijkbaar: selecteer de gewenste database, klik op het tabblad "Importeren", we zien het volgende venster:

In de sectie "Bestand om te importeren" gebruikt u de knop "Bladeren" om het databasedumpbestand op te geven, hieronder voeren we de codering in - in joomla is dit standaard utf-8. Hieronder vindt u het gedeelte 'Gedeeltelijke import' en het veld 'Aantal records (query's dat moet worden overgeslagen vanaf ster') waarin u kunt invoeren numerieke waarde- het aantal rijen dat in één keer wordt verwerkt, voor het geval de hele database tijdens de levensduur van het script geen tijd heeft om te importeren. De standaardwaarde "0" komt overeen met het importeren van de gehele database in één scriptrun. In mijn praktijk heb ik nog nooit te maken gehad met het feit dat de basis geen tijd heeft om één pasje in te vullen, al betekent dit niet dat dergelijke gevallen niet voorkomen. De waarden van de overige velden hoeven niet te worden gewijzigd, druk gewoon op de “GO”-knop. Dat is alles, de databasedump is geïmporteerd.

En tot slot nog enkele verduidelijkingen.

1) Waarom heb ik de methode beschreven voor het importeren/exporteren van alle tabellen en niet de hele database? Feit is dat u meestal te maken krijgt met de import-/exportprocedure bij het overbrengen van gegevens van een webserver naar een lokale machine en omgekeerd. Maar heel vaak wordt op de lokale machine toegang gebruikt rekening"root" zonder wachtwoord. Met hosting kunnen we dit niet betalen. En de database bevat niet alleen gegevens, maar ook "privileges" - toegangsrechten bepaalde gebruikers. Om te voorkomen dat u elke keer gebruikers moet aanmaken/verwijderen en er toegangsrechten aan moet toekennen, wordt een aanpak gebruikt waarbij alleen de tabelstructuur en de gegevens daarin worden vastgelegd in de databasedump. Als u alleen een back-up maakt voor dezelfde server, is het heel goed mogelijk om een ​​dump van de hele database te maken.

2) Waarom phpMyAdmin? Het punt hier is helemaal niet dat er geen alternatief voor is - er zijn er gewoon veel, er zijn functionelere en eenvoudigere dingen. Alleen phpMyAdmin logt in standaard ingesteld voor de meeste gedeelde hostingdiensten, d.w.z. U hoeft helemaal niets te doen om het te installeren. Die. we openen het gewoon en dumpen de database. En natuurlijk kan het gebruik van phpMyAdmin voor veel taken nuttig zijn, zoals het testen van queries, het bekijken van de structuur van tabellen en de gegevens daarin.

Nou, dat is eigenlijk alles wat ik je in dit artikel wilde vertellen. Reacties zijn zoals altijd welkom.

Ondersteuning van de Novosibirsk-site