{"id":229818,"date":"2022-11-28T19:45:00","date_gmt":"2022-11-28T16:45:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229818"},"modified":"2022-11-28T19:49:30","modified_gmt":"2022-11-28T16:49:30","slug":"przewodnik-dla-programistow-wordpress-po-rekonstrukcji-danych-mysql","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/przewodnik-dla-programistow-wordpress-po-rekonstrukcji-danych-mysql\/","title":{"rendered":"Przewodnik dla programist\u00f3w WordPress po rekonstrukcji danych MySQL"},"content":{"rendered":"\n<p>W pewnym momencie kariery ka\u017cdego dewelopera nadejdzie czas, w kt\u00f3rym zrobisz co\u015b, co produkuje czo\u0142gi.<\/p>\n<ul>\n<li>Mo\u017ce wypchniesz kod, kt\u00f3ry ko\u0144czy si\u0119 zniszczeniem pami\u0119ci podr\u0119cznej, kt\u00f3ra obs\u0142uguje dane milionom ludzi,<\/li>\n<li>By\u0107 mo\u017ce zaktualizujesz aplikacj\u0119 i wyrzucisz informacje, kt\u00f3re nie maj\u0105 kopii zapasowej,<\/li>\n<li>A mo\u017ce wypchniesz zmian\u0119, kt\u00f3ra \u201edzia\u0142a na twoim komputerze&quot;, ale ca\u0142kowicie obs\u0142u\u017cy repozytorium kontroli \u017ar\u00f3d\u0142a.<\/li>\n<\/ul>\n<p>I jest wiele innych przyk\u0142ad\u00f3w. Jestem pewien, \u017ce sam szybko zdo\u0142asz wymieni\u0107 pi\u0119\u0107 kolejnych.<\/p>\n<p>Pope\u0142ni\u0142em (kalambur zamierzony, jakby) m\u00f3j sprawiedliwy udzia\u0142 we wszystkich powy\u017cszych, ale jest to jedna z rzeczy, kt\u00f3re widz\u0119 od ludzi pracuj\u0105cych w naszej przestrzeni.<\/p>\n<p>To znaczy ci, kt\u00f3rzy pracuj\u0105 z aplikacjami internetowymi opartymi na bazach danych \u2013 to brak zrozumienia organizacji bazy danych na poziomie systemu plik\u00f3w i tego, jak mo\u017cna zrekonstruowa\u0107 dane, nawet je\u015bli nie masz standardowej kopii zapasowej, na kt\u00f3rej mo\u017cna pracowa\u0107.<\/p>\n<p>W tym po\u015bcie zamierzam zag\u0142\u0119bi\u0107 si\u0119 w organizacj\u0119 bazy danych MySQL na poziomie systemu plik\u00f3w, w jaki spos\u00f3b mo\u017cna przywr\u00f3ci\u0107 informacje z tego w por\u00f3wnaniu z plikiem kopii zapasowej, je\u015bli znajdziesz si\u0119 w takiej sytuacji, i poda\u0107 odniesienia (lub zak\u0142adki) potrzebujesz ich.<\/p>\n<h2>Rekonstrukcja danych MySQL<\/h2>\n<p>\u017beby by\u0142o jasne, b\u0119d\u0119 m\u00f3wi\u0142 o bazie danych MySQL dzia\u0142aj\u0105cej na wariancie systemu operacyjnego opartego na *nix (wi\u0119c patrzysz na dystrybucj\u0119 Linuksa lub macOS).<\/p>\n<p>Lokalizacje plik\u00f3w (kt\u00f3re za chwil\u0119 om\u00f3wi\u0119) b\u0119d\u0105 si\u0119 r\u00f3\u017cni\u0107 w systemie Windows, ale b\u0119dziesz musia\u0142 odwo\u0142a\u0107 si\u0119 do <strong><a href=\"https:\/\/dev.mysql.com\/doc\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">podr\u0119cznika MySQL<\/a><\/strong> lub podobnego \u017ar\u00f3d\u0142a, aby je znale\u017a\u0107.<\/p>\n<p>Chodzi o to: Zanim przejdziesz za daleko w tym artykule, dowiedz si\u0119, gdzie znajduj\u0105 si\u0119 pliki w twoim systemie operacyjnym. Na przyk\u0142ad, je\u015bli u\u017cywasz macOS i prawdopodobnie znajdziesz go w <strong>\/usr\/local\/mysql\/data.<\/strong><\/p>\n<p>Wol\u0119 u\u017cywa\u0107 <strong><a href=\"https:\/\/wordpress.mediadoma.com\/pl\/homebrew-node-i-gulp-dla-rozwoju-wordpress\/\" title=\"Homebrew\">Homebrew<\/a><\/strong>, wi\u0119c moje bazy danych MySQL znajduj\u0105 si\u0119 w <strong>\/usr\/local\/var\/mysql<em><\/em><\/strong> .<em><\/em> Jak wida\u0107 powy\u017cej, zauwa\u017cysz pliki, kt\u00f3re maj\u0105 tak\u0105 sam\u0105 nazw\u0119 jak bazy danych, kt\u00f3re masz w swoim systemie .<\/p>\n<h3>Jak zorganizowane s\u0105 bazy danych<\/h3>\n<p>Na poziomie powierzchni wygl\u0105da to do\u015b\u0107 prosto. Ale je\u015bli chcesz otworzy\u0107 katalog, jak wspomniano powy\u017cej, zobaczysz, \u017ce wiele z tego, co widzisz, to katalogi \u2013 nie pliki jako takie \u2013 kt\u00f3re zawieraj\u0105 wi\u0119cej informacji.<\/p>\n<\/p>\n<p>Je\u015bli przejdziesz do jednego z katalog\u00f3w, zobaczysz r\u00f3\u017cne pliki:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75bde646e7.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75bde646e7.png\" alt=\"Przewodnik dla programist\u00f3w WordPress po rekonstrukcji danych MySQL\"><\/a><\/p>\n<p>Nale\u017c\u0105 do nich pliki zawieraj\u0105ce nast\u0119puj\u0105ce typy:<\/p>\n<ul>\n<li>\u015aWIAT<\/li>\n<li>MYI<\/li>\n<li>FRM<\/li>\n<li>IBD<\/li>\n<\/ul>\n<p>Ka\u017cdy z tych typ\u00f3w plik\u00f3w istnieje dla ka\u017cdej tabeli w bazie danych.<\/p>\n<p>Przyjrzyjmy si\u0119 wi\u0119c tym bardziej dog\u0142\u0119bnie, aby lepiej zrozumie\u0107, z czego dok\u0142adnie sk\u0142ada si\u0119 baza danych.<\/p>\n<h4>1 Baza danych to zestaw plik\u00f3w<\/h4>\n<p>Og\u00f3lnie rzecz bior\u0105c, wi\u0119kszo\u015b\u0107 z nas wie, \u017ce MySQL jest <strong><a href=\"https:\/\/en.wikipedia.org\/wiki\/Relational_database\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">relacyjn\u0105 baz\u0105 danych<\/a><\/strong>, a ka\u017cda baza danych sk\u0142ada si\u0119 z zestawu tabel, z kt\u00f3rych wszystkie przechowuj\u0105 r\u00f3\u017cne typy informacji (a wiele tabel jest w jaki\u015b spos\u00f3b powi\u0105zanych ze sob\u0105, nawet je\u015bli jest to tylko warto\u015b\u0107 w pojedyncza kolumna).<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75be15f8cc.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75be15f8cc.jpg\" alt=\"Przewodnik dla programist\u00f3w WordPress po rekonstrukcji danych MySQL\"><\/a><\/p>\n<p>Ale ten post nie dotyczy relacyjnego aspektu bazy danych ani tego, w jaki spos\u00f3b jeste\u015bmy w stanie uruchamia\u0107 wzgl\u0119dem niej zapytania. (Je\u015bli jeste\u015b zainteresowany, miej to \u2013 wszystko opiera si\u0119 na <strong><a href=\"https:\/\/en.wikipedia.org\/wiki\/Tuple_relational_calculus\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">rachunku krotek<\/a><\/strong> .)<\/p>\n<p>Zamiast tego chodzi o zrozumienie, \u017ce dla ka\u017cdej tabeli istnieje zestaw plik\u00f3w, kt\u00f3re odwo\u0142uj\u0105 si\u0119 do informacji zawartych w ka\u017cdej tabeli. I<\/p>\n<h4>2 Zrozumienie typ\u00f3w plik\u00f3w<\/h4>\n<p>Poniewa\u017c ka\u017cda tabela w bazie danych sk\u0142ada si\u0119 z powy\u017cszych typ\u00f3w plik\u00f3w, przyjrzyjmy si\u0119 poszczeg\u00f3lnym typom plik\u00f3w, a nast\u0119pnie okre\u015blmy rol\u0119, jak\u0105 odgrywa dla ka\u017cdej tabeli (i ostatecznie, w jaki spos\u00f3b wp\u0142ywa to na ca\u0142\u0105 baz\u0119 danych).<\/p>\n<ul>\n<li><strong>MYD<\/strong>. Ten plik zawiera dane przechowywane w wierszach tabeli bazy danych. Ten plik jest \u015bci\u015ble powi\u0105zany z plikiem FRM.<\/li>\n<li><strong>FRM<\/strong>. Ten plik zawiera dane w formacie tabeli (w tym takie elementy, jak struktura ka\u017cdej kolumny bazy danych, rodzaj przechowywanych danych itd.).<\/li>\n<li><strong>MYI<\/strong>. To jest indeks bazy danych. Je\u015bli u\u017cywasz bazy danych MyISAM (z kt\u00f3rej wi\u0119kszo\u015b\u0107 z nas korzysta w tym momencie z InnoDB), b\u0119dziesz mie\u0107 ten plik. Ponadto dane zawieraj\u0105 informacje o tym, czy dane zosta\u0142y prawid\u0142owo zamkni\u0119te. Potraktuj to jako plik dotycz\u0105cy integralno\u015bci samej tabeli. Nie zawarte w nim informacje, nie jego format.<\/li>\n<li><strong>IBD<\/strong>. Jest to typ pliku, kt\u00f3ry jest powi\u0105zany z tabelami bazy danych InnoDB (wi\u0119c mo\u017cesz go nie widzie\u0107 w katalogu bazy danych). Je\u015bli jednak to zrobisz, wa\u017cne jest, aby wiedzie\u0107, \u017ce bazy danych oparte na InnoDB b\u0119d\u0105 przechowywa\u0107 informacje o ka\u017cdej tabeli w tym pliku.<\/li>\n<\/ul>\n<p>W powy\u017cszych informacjach s\u0105 jeszcze dwa inne tematy, kt\u00f3re warto zg\u0142\u0119bi\u0107.<\/p>\n<ol>\n<li>M\u00f3jISAM<\/li>\n<li>InnoDB<\/li>\n<\/ol>\n<p>Zanim przyjrzysz si\u0119 ka\u017cdemu z nich, zauwa\u017c, \u017ce MyISAM i InnoDB s\u0105 nazywane silnikami pami\u0119ci masowej. Brzmi to dziwnie, ale ma zwi\u0105zek z tym, jak oprogramowanie bazy danych zarz\u0105dza operacjami <strong><a href=\"https:\/\/en.wikipedia.org\/wiki\/Create,_read,_update_and_delete\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tworzenia, odczytywania, aktualizowania i usuwania informacji<\/a><\/strong>.<\/p>\n<h5>MyISAM i InnoDB: Jaka jest r\u00f3\u017cnica?<\/h5>\n<p>Ka\u017cdy z tych aparat\u00f3w pami\u0119ci masowej r\u00f3\u017cni si\u0119 sposobem obs\u0142ugi transakcji, blokowania, wycofywania i wyszukiwania. Dla tych, kt\u00f3rzy s\u0105 administratorami baz danych, znasz wszystkie powy\u017csze (ale prawdopodobnie te\u017c tego nie czytasz \ud83d\ude43).<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75be446350.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75be446350.jpg\" alt=\"Przewodnik dla programist\u00f3w WordPress po rekonstrukcji danych MySQL\"><\/a><\/p>\n<p>Oczywi\u015bcie nie ten typ silnika.<\/p>\n<p>Dla reszty z nas oto, co mamy:<\/p>\n<ul>\n<li>Transakcje wyst\u0119puj\u0105, gdy co najmniej dwie instrukcje, takie jak SELECT i UPDATE lub INSERT i DELETE, lub dowolna kombinacja tych dw\u00f3ch (lub wi\u0119cej) s\u0105 u\u017cywane w po\u0142\u0105czeniu ze sob\u0105. Wi\u0119c je\u015bli mia\u0142by\u015b WYBRA\u0106 informacje, a nast\u0119pnie USUN\u0104\u0106 wyniki, mia\u0142by\u015b transakcj\u0119.\n<ul>\n<li><strong>MyISAM nie obs\u0142uguje transakcji.<\/strong> Oznacza to, \u017ce przerwanie \u201etransakcji&#8221; ma wp\u0142yw na wszystkie dane, kt\u00f3re by\u0142y przetwarzane podczas operacji. Trzeba powiedzie\u0107, \u017ce to nie jest u\u017cywane.<\/li>\n<li>Z kolei InnoDB gwarantuje, \u017ce zmiany nie zostan\u0105 wprowadzone do tabeli, dop\u00f3ki transakcja nie zostanie zako\u0144czona. Innymi s\u0142owy, zmiany nie zostan\u0105 zatwierdzone w bazie danych.<\/li>\n<\/ul>\n<\/li>\n<li>Dla ka\u017cdego z silnik\u00f3w magazynu blokowanie r\u00f3\u017cni si\u0119 na poziomie tabeli lub na poziomie wiersza. Za ka\u017cdym razem, gdy wykonujesz zapytanie w tabeli, MyISAM zablokuje ca\u0142\u0105 tabel\u0119 do czasu zako\u0144czenia procesu. Z drugiej strony InnoDB zablokuje tylko te wiersze, kt\u00f3rych dotyczy problem. Jest to wa\u017cne rozr\u00f3\u017cnienie, poniewa\u017c oznacza, \u017ce \u200b\u200bmo\u017cesz nadal operowa\u0107 na tabeli, ale nie na tych samych wierszach, za ka\u017cdym razem, gdy u\u017cywasz InnoDB.<\/li>\n<li>Cofanie zmian nie jest mo\u017cliwe w MyISAM. Oznacza to, \u017ce raz dokonana zmiana jest gotowa. InnoDB oferuje wycofanie. Za\u0142\u00f3\u017cmy, \u017ce dokona\u0142e\u015b zmiany w tabeli, przypadkowo zrobi\u0142e\u015b co\u015b, czego nie chcia\u0142e\u015b zrobi\u0107, a nast\u0119pnie mo\u017cesz przywr\u00f3ci\u0107 poprzedni stan. Nie nale\u017cy tego jednak myli\u0107 z kopi\u0105 zapasow\u0105. Jest to bardziej operacja \u201ecofania&#8221; transakcji.<\/li>\n<li>Wyszukiwanie, zw\u0142aszcza spos\u00f3b, w jaki organizujemy nasze bazy danych, jest kluczem do tego, jak organizujemy dane w naszych bazach danych. M\u00f3wi\u0105c najpro\u015bciej, InnoDB obs\u0142uguje indeksowanie <strong><a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.6\/en\/innodb-fulltext-index.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">FULLTEXT<\/a><\/strong> (od MySQL 5.6.4). Ale je\u015bli tw\u00f3j host lub dostawca nie zezwala na indeksy PE\u0141NOTEKSTOWE, twierdz\u0119, \u017ce nie jest to \u0142amanie umowy.<\/li>\n<\/ul>\n<p>Bior\u0105c pod uwag\u0119 wszystkie powy\u017csze informacje, ka\u017cdy mo\u017ce zauwa\u017cy\u0107, \u017ce zalety silnika pami\u0119ci masowej InnoDB znacznie przewy\u017cszaj\u0105 zalety silnika pami\u0119ci masowej MyISAM, zw\u0142aszcza je\u015bli jeste\u015b powy\u017cej wersji MySQL, kt\u00f3ra jest co najmniej r\u00f3wna 5.6.4<\/p>\n<h4>3 Odtworzenie bazy danych<\/h4>\n<p>W tym momencie za\u0142\u00f3\u017cmy, \u017ce wiesz, \u017ce masz dost\u0119p do plik\u00f3w tworz\u0105cych baz\u0119 danych z systemu operacyjnego.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75be6c364a.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75be6c364a.jpg\" alt=\"Przewodnik dla programist\u00f3w WordPress po rekonstrukcji danych MySQL\"><\/a><\/p>\n<p>By\u0107 mo\u017ce jest to poprzednia kopia zapasowa, by\u0107 mo\u017ce jeste\u015b w stanie zlokalizowa\u0107 pliki na dysku, a mo\u017ce jeste\u015b w stanie odzyska\u0107 je w inny spos\u00f3b \u2013 i musisz przywr\u00f3ci\u0107 baz\u0119 danych do poprzedniego punktu.<\/p>\n<h5>1 Nie r\u00f3b tego na produkcji<\/h5>\n<p>Zanim cokolwiek zrobisz, skonfiguruj pust\u0105 baz\u0119 danych na komputerze lokalnym, a nast\u0119pnie zaimportuj informacje. Ale znowu nie jest to po prostu u\u017cywanie interfejsu bazy danych do importowania pliku SQL.<\/p>\n<p>Zamiast tego utw\u00f3rz katalog zgodny z nazw\u0105 bazy danych, kt\u00f3r\u0105 chcesz utworzy\u0107. W tym po\u015bcie u\u017cyj\u0119 przyk\u0142adu <strong>trunkdev<\/strong> (poniewa\u017c tutaj pracuj\u0119 przy u\u017cyciu najnowszej wersji z <strong><a href=\"https:\/\/wordpress.org\/download\/source\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">baga\u017cnika WordPress<\/a><\/strong> ).<\/p>\n<h5>2 Utw\u00f3rz kopi\u0119 zapasow\u0105 istniej\u0105cej bazy danych<\/h5>\n<p>Nast\u0119pnie wykonaj kopi\u0119 zapasow\u0105 istniej\u0105cej bazy danych w jak najwi\u0119kszym stopniu \u2013 czy to za pomoc\u0105 interfejsu bazy danych, czy kopii plik\u00f3w. Nast\u0119pnie skopiuj pliki z lokalizacji \u017ar\u00f3d\u0142owej do utworzonego katalogu.<\/p>\n<p>W tym momencie powiniene\u015b by\u0107 w stanie za\u0142adowa\u0107 wybrany interfejs bazy danych i zobaczy\u0107 informacje zawarte w w\u0142a\u015bnie skopiowanych plikach bazy danych. Jest to uzale\u017cnione od tego, czy pliki nie s\u0105 uszkodzone, a serwer bazy danych dzia\u0142a.<\/p>\n<h5>3 Nie instaluj innego oprogramowania<\/h5>\n<p>Zauwa\u017c, \u017ce w tym momencie nie pr\u00f3bowa\u0142bym instalowa\u0107 na nim innego oprogramowania, takiego jak WordPress ani \u017cadnych innych informacji. Zamiast tego pracuj bezpo\u015brednio z danymi. Zak\u0142adaj\u0105c, \u017ce jest on widoczny w Twoim interfejsie, wykonaj odpowiedni\u0105 kopi\u0119 zapasow\u0105 lub wyeksportuj plik do pliku SQL, aby w przysz\u0142o\u015bci \u0142atwiej przywr\u00f3ci\u0107 informacje.<\/p>\n<p>Niekt\u00f3re interfejsy umo\u017cliwiaj\u0105 eksportowanie tylko niekt\u00f3rych tabel. W takim przypadku wykonaj kopi\u0119 zapasow\u0105 wszystkiego. W przypadku niekt\u00f3rych baz danych zajmie to du\u017co czasu; dla innych nie tak bardzo. Wszystko zale\u017cy od wielko\u015bci projektu.<\/p>\n<h5>4 Praca z danymi<\/h5>\n<p>W tym momencie powiniene\u015b by\u0107 w stanie zacz\u0105\u0107 manipulowa\u0107 baz\u0105 danych za pomoc\u0105 interfejsu lub SQL. Je\u015bli nie czujesz si\u0119 komfortowo lub nawet nie wiesz, jak to zrobi\u0107, porozmawiaj z kim\u015b, kto jest, poniewa\u017c mo\u017ce to by\u0107 co\u015b niezwykle wra\u017cliwego (w ko\u0144cu masz do czynienia z odtworzeniem bazy danych z plik\u00f3w, prawda?)<\/p>\n<p>Gdy uwa\u017casz, \u017ce masz informacje w miejscu, kt\u00f3re jest gotowe do przywr\u00f3cenia do dowolnej aplikacji, kt\u00f3ra utraci\u0142a informacje, uszkodzone informacje lub po prostu ma zniekszta\u0142cone dane, nadszed\u0142 czas, aby przygotowa\u0107 si\u0119 do pobrania informacji z komputera lokalnego i odes\u0142ania ich z powrotem do \u017ar\u00f3d\u0142o.<\/p>\n<h3>Powr\u00f3t do \u017ar\u00f3d\u0142a<\/h3>\n<p>Po pierwsze, wszystkie powy\u017csze czynno\u015bci zaleca si\u0119 wykonywa\u0107 w godzinach o ma\u0142ym nat\u0119\u017ceniu ruchu, wi\u0119c upewnij si\u0119, \u017ce za ka\u017cdym razem, gdy to zrobisz, nie b\u0119dziesz robi\u0107 tego w godzinach szczytu. To powinno by\u0107 oczywiste.<\/p>\n<p>Nast\u0119pnie wykonaj kopi\u0119 zapasow\u0105 bazy danych, zanim zaczniesz na niej operowa\u0107. Zapisz plik w lokalizacji, kt\u00f3r\u0105 mo\u017cesz \u0142atwo przywo\u0142a\u0107 i uzyska\u0107 do niej \u0142atwy dost\u0119p, dzi\u0119ki czemu je\u015bli co\u015b p\u00f3jdzie nie tak z wykorzystaniem informacji, kt\u00f3re zamierzasz zaimportowa\u0107, b\u0119dziesz obj\u0119ty ochron\u0105 i po prostu przywr\u00f3\u0107 to, co ju\u017c tam by\u0142o. Aby by\u0142o jasne, wyeksportuj ca\u0142\u0105 baz\u0119 danych w formacie SQL.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75be94139d.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75be94139d.jpg\" alt=\"Przewodnik dla programist\u00f3w WordPress po rekonstrukcji danych MySQL\"><\/a><\/p>\n<p>Teraz we\u017a baz\u0119 danych, kt\u00f3r\u0105 masz na swoim lokalnym komputerze i wyeksportuj te informacje r\u00f3wnie\u017c do pliku SQL. Otw\u00f3rz wyeksportowany plik i upewnij si\u0119, \u017ce u\u017cywa instrukcji <strong>CREATE<\/strong> do utworzenia bazy danych o w\u0142a\u015bciwej nazwie oraz tabel z odpowiednimi nazwami.<\/p>\n<p>Zak\u0142adaj\u0105c, \u017ce wszystko p\u00f3jdzie dobrze, wszystko, co zaimportowa\u0142e\u015b, zostanie przywr\u00f3cone dok\u0142adnie tak, jak powinno i tak, jak widzisz na swoim lokalnym urz\u0105dzeniu. Je\u015bli tego nie widzisz, zaimportuj wcze\u015bniej wyeksportowany plik; w przeciwnym razie mo\u017cesz i\u015b\u0107.<\/p>\n<h4>Co je\u015bli to nie zadzia\u0142a?<\/h4>\n<p>Je\u015bli to nie zadzia\u0142a, b\u0119dziesz musia\u0142 przej\u015b\u0107 do g\u0142\u00f3wnego problemu:<\/p>\n<ul>\n<li>Czy nie zadzia\u0142a\u0142o, bo co\u015b jest nie tak z plikami z serwera?<\/li>\n<li>Czy to nie zadzia\u0142a\u0142o z powodu typu bazy danych utworzonej na komputerze lokalnym?<\/li>\n<li>Czy u\u017cywasz tego samego silnika pami\u0119ci masowej? Powiniene\u015b by\u0107, poniewa\u017c pochodzi z plik\u00f3w.<\/li>\n<li>Czy integralno\u015b\u0107 bazy danych jest solidna lokalnie?<\/li>\n<li>Czy baza danych na serwerze jest usuwana przed zaimportowaniem danych z komputera lokalnego?<\/li>\n<\/ul>\n<p>Je\u015bli w tym momencie nie dzia\u0142a, zwykle dzieje si\u0119 tak z powodu tego, co powy\u017cej. Jednak mo\u017ce to by\u0107 co\u015b innego. Zrobi\u0142em, co w mojej mocy, aby dostarczy\u0107 jak najwi\u0119cej informacji o bazach danych MySQL, ich strukturze i krokach niezb\u0119dnych do zrekonstruowania bazy danych z plik\u00f3w, ale nie mog\u0119 uchwyci\u0107 ka\u017cdego potencjalnego przypadku brzegowego.<\/p>\n<h2>Zawsze tw\u00f3rz kopie zapasowe danych (i nie zak\u0142adaj, \u017ce to si\u0119 robi)<\/h2>\n<p>To powiedziawszy, mam nadziej\u0119, \u017ce wszystkie powy\u017csze informacje pozwol\u0105 lepiej zrozumie\u0107, co kryje si\u0119 pod WordPressem, je\u015bli zmierzysz si\u0119 z tym problemem samodzielnie lub z klientem.<\/p>\n<p>I wreszcie zawsze kopia zapasowa. Wykonuj r\u0119czne kopie zapasowe, r\u00f3b automatyczne kopie zapasowe i r\u00f3b je cz\u0119sto. Nie ograniczaj si\u0119 te\u017c do bazy danych. Utw\u00f3rz kopi\u0119 zapasow\u0105 bazy danych, aplikacji i wszystkiego, co jest niezb\u0119dne do zasilania rozwi\u0105zania.<\/p>\n<p>Je\u015bli to zrobisz, nie b\u0119dziesz musia\u0142 si\u0119 martwi\u0107 o wszystkie powy\u017csze.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wszystko, co chcia\u0142e\u015b wiedzie\u0107 o tym, jak zorganizowana jest podstawowa baza danych MySQL na poziomie systemu plik\u00f3w i jak zabra\u0107 si\u0119 za rekonstrukcj\u0119 danych MySQL.<\/p>\n","protected":false},"author":1,"featured_media":163966,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[721,897,845],"tags":[1169],"class_list":["post-229818","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-kod","category-samouczki","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/229818","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=229818"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/229818\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/163966"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=229818"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=229818"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=229818"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}