{"id":27790,"date":"2021-05-15T20:04:00","date_gmt":"2021-05-15T17:04:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27790"},"modified":"2021-10-18T03:46:50","modified_gmt":"2021-10-18T00:46:50","slug":"jak-wykonac-kopie-zapasowa-bazy-danych-mysql-za-pomoca-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/jak-wykonac-kopie-zapasowa-bazy-danych-mysql-za-pomoca-php\/","title":{"rendered":"Jak wykona\u0107 kopi\u0119 zapasow\u0105 bazy danych MySQL za pomoc\u0105 PHP"},"content":{"rendered":"<p>Czy chcesz wykona\u0107 kopi\u0119 zapasow\u0105 bazy danych w swoich projektach PHP? Zawsze zaleca si\u0119 okresowe tworzenie kopii zapasowej bazy danych. Dzi\u0119ki temu dane Twojej witryny b\u0119d\u0105 zawsze bezpieczne w przypadku wyst\u0105pienia jakichkolwiek problem\u00f3w z baz\u0105 danych. W tym artykule poka\u017cemy, jak okresowo wykona\u0107 kopi\u0119 zapasow\u0105 bazy danych MySQL i przechowywa\u0107 j\u0105 na swoim serwerze.<\/p>\n<p>Ten artyku\u0142 jest napisany dla projekt\u00f3w, kt\u00f3re s\u0105 wbudowane w PHP, a nie z jakimkolwiek CMS lub Frameworkiem. CMS, taki jak WordPress, ma kilka dost\u0119pnych wtyczek, takich jak UpdraftPlus, do <a href=\"https:\/\/themewp.inform.click\/pl\/?p=27305\" title=\"tworzenia kopii zapasowych bazy danych\" >tworzenia kopii zapasowych bazy danych<\/a>. Na stronach Laravel u\u017cytkownik mo\u017ce u\u017cywa\u0107 pakiet\u00f3w takich jak <a href=\"https:\/\/themewp.inform.click\/pl\/jak-wykonac-kopie-zapasowa-aplikacji-laravel\/\" title=\"laravel-backup\" >laravel-backup<\/a> do tych samych cel\u00f3w.<\/p>\n<p><a href=\"https:\/\/spatie.be\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a>Zesp\u00f3\u0142 <a href=\"https:\/\/spatie.be\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Spatie<\/a> opracowa\u0142 <a href=\"https:\/\/github.com\/spatie\/db-dumper\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pakiet,<\/a> kt\u00f3ry jest przydatny do wykonywania kopii zapasowych baz danych w podstawowych projektach PHP. Ten pakiet zapewnia obs\u0142ug\u0119 MySQL, PostgreSQL, SQLite i MongoDB. Baz\u0119 danych MySQL om\u00f3wimy w tym artykule. Bior\u0105c to pod uwag\u0119, przyjrzyjmy si\u0119, jak ten pakiet dzia\u0142a podczas tworzenia kopii zapasowej bazy danych.<\/p>\n<h3>Kopia zapasowa bazy danych MySQL przy u\u017cyciu PHP<\/h3>\n<p>Przed kontynuowaniem upewnij si\u0119, \u017ce masz po\u015bwiadczenia bazy danych, a <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> jest zainstalowany w systemie.<\/p>\n<p>Nast\u0119pnie otw\u00f3rz terminal w katalogu g\u0142\u00f3wnym projektu i uruchom poni\u017csze polecenie, aby zainstalowa\u0107 pakiet.<\/p>\n<pre><code>composer require spatie\/db-dumper<\/code><\/pre>\n<p>Po zainstalowaniu pakietu utw\u00f3rz katalog <code>db-backups<\/code>(mo\u017cesz nada\u0107 dowoln\u0105 nazw\u0119), w kt\u00f3rym mo\u017cesz przechowywa\u0107 pliki kopii zapasowej SQL. Utw\u00f3rz r\u00f3wnie\u017c plik <code>backup-database.php<\/code>i dodaj w nim poni\u017cszy kod.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\nSpatieDbDumperDatabasesMySql::create()\n\u00a0\u00a0\u00a0\u00a0-&gt;setDbName('DB_NAME')\n\u00a0\u00a0\u00a0\u00a0-&gt;setUserName('DB_USER_NAME')\n\u00a0\u00a0\u00a0\u00a0-&gt;setPassword('DB_PASSWORD')\n\u00a0\u00a0\u00a0\u00a0-&gt;dumpToFile('db-backups\/'.time().'_dump.sql');<\/code><\/pre>\n<p>Pami\u0119taj, aby zast\u0105pi\u0107 symbole zast\u0119pcze rzeczywistymi warto\u015bciami. W powy\u017cszym kodzie dodali\u015bmy aktualny czas do pliku SQL, aby zachowa\u0107 r\u00f3\u017cne nazwy plik\u00f3w. Zrzuci twoj\u0105 baz\u0119 danych i zapisze j\u0105 w podanym pliku SQL.<\/p>\n<p>Pakiet daje wi\u0119cej opcji podczas zrzucania bazy danych. Na przyk\u0142ad mo\u017cesz wykluczy\u0107 okre\u015blone tabele z kopii zapasowej, podaj\u0105c tablic\u0119 wykluczania tabel, jak poni\u017cej.<\/p>\n<pre><code>&lt;?php\nSpatieDbDumperDatabasesMySql::create()\n\u00a0\u00a0\u00a0\u00a0-&gt;setDbName('DB_NAME')\n\u00a0\u00a0\u00a0\u00a0-&gt;setUserName('DB_USER_NAME')\n\u00a0\u00a0\u00a0\u00a0-&gt;setPassword('DB_PASSWORD')\n\u00a0\u00a0\u00a0\u00a0-&gt;excludeTables(['table1', 'table2', 'table3'])\n\u00a0\u00a0\u00a0\u00a0-&gt;dumpToFile('db-backups\/'.time().'_dump.sql');<\/code><\/pre>\n<h3>Automatycznie tw\u00f3rz kopie zapasowe bazy danych MySQL<\/h3>\n<p>Do tej pory masz plik PHP, kt\u00f3ry pobiera kopi\u0119 zapasow\u0105 bazy danych. Nast\u0119pn\u0105 rzecz\u0105, kt\u00f3r\u0105 nale\u017cy zrobi\u0107, to zautomatyzowa\u0107 proces tworzenia kopii zapasowej, aby uzyska\u0107 kopie zapasowe bez r\u0119cznego wykonywania skryptu.<\/p>\n<p>Kiedy hostujesz witryn\u0119 na serwerze, Tw\u00f3j dostawca hostingu udost\u0119pnia cPanel, w kt\u00f3rym mo\u017cesz zobaczy\u0107 podstawowe i zaawansowane opcje zarz\u0105dzania witryn\u0105. Jedn\u0105 z oferowanych przez nich funkcji jest \u201eCron Jobs&quot;. Zadania Cron umo\u017cliwiaj\u0105 uruchamianie w tle okre\u015blonego skryptu (pliku PHP) w okre\u015blonych odst\u0119pach czasu. Wszystko, co musisz zrobi\u0107, to ustawi\u0107 interwa\u0142 i przekaza\u0107 \u015bcie\u017ck\u0119 katalogu pliku PHP. Nast\u0119pnie serwer uruchamia Tw\u00f3j skrypt w tle w okre\u015blonych odst\u0119pach czasu.<\/p>\n<p>Aby ustawi\u0107 Crona, zaloguj si\u0119 do swojego cPanel i kliknij \u201eZadania Cron&#8221;, kt\u00f3re mo\u017cesz znale\u017a\u0107 w sekcji \u201eZaawansowane&#8221;.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20601-60820cd083738.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20601-60820cd083738.png\" alt=\"Jak wykona\u0107 kopi\u0119 zapasow\u0105 bazy danych MySQL za pomoc\u0105 PHP\" ><\/a><\/p>\n<p>Na nast\u0119pnej stronie w sekcji \u201eDodaj nowe zadanie Cron&#8221; wybierz \u201eRaz dziennie&#8221; dla menu \u201eWsp\u00f3lne ustawienia&#8221;. Oznacza to, \u017ce Tw\u00f3j skrypt b\u0119dzie uruchamiany raz dziennie. U\u017cytkownik mo\u017ce ustawi\u0107 dowolny interwa\u0142 w zale\u017cno\u015bci od wymaga\u0144.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20601-60820cd11b583.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20601-60820cd11b583.png\" alt=\"Jak wykona\u0107 kopi\u0119 zapasow\u0105 bazy danych MySQL za pomoc\u0105 PHP\" ><\/a><\/p>\n<p>W sekcji polece\u0144 podaj \u015bcie\u017ck\u0119 do pliku PHP w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n<pre><code>php \/home\/username\/public_html\/backup-database.php<\/code><\/pre>\n<p>Dostosuj \u015bcie\u017ck\u0119 skryptu zgodnie z konfiguracj\u0105 hostingu i prze\u015blij j\u0105. Nast\u0119pnie Tw\u00f3j serwer zaczyna codziennie o p\u00f3\u0142nocy wykonywa\u0107 skrypt. A ten skrypt automatycznie zapisze twoj\u0105 baz\u0119 danych MySQL w okre\u015blonym katalogu (np. db-backups).<\/p>\n<p>Mamy nadziej\u0119, \u017ce rozumiesz, jak wykona\u0107 kopi\u0119 zapasow\u0105 bazy danych MySQL w PHP i zautomatyzowa\u0107 proces za pomoc\u0105 Crona. Chcieliby\u015bmy pozna\u0107 Twoje przemy\u015blenia lub sugestie w sekcji komentarzy poni\u017cej.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tym artykule dowiemy si\u0119, jak wykona\u0107 kopi\u0119 zapasow\u0105 bazy danych MySQL przy u\u017cyciu PHP i zautomatyzowa\u0107 proces za pomoc\u0105 zada\u0144 Cron. W ten spos\u00f3b otrzymasz swoj\u0105 baz\u0119 danych<\/p>\n","protected":false},"author":1,"featured_media":21761,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[277],"tags":[847],"class_list":["post-27790","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-8","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/27790","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=27790"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/27790\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21761"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=27790"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=27790"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=27790"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}