移至主內容
首頁  >  Linux記事本  >  網站資料庫的建立、備份、還原

網站資料庫的建立、備份、還原

網站資料庫的建立、備份、還原

Tag :
MySQL, Database, Backup, Restore
Written by Wanding on 4 March 2022

backup

備份網站是件很重要的事情,天有不測風雲,擁有高度實驗興趣的人,難保不會手殘,哪天來個(rm -r /),資料可能就沒了,若沒有備份就真的會崩潰到GG。(不懂 rm -r /  的朋友,請自行Google,但不要親力親為,下場會很慘)

無論是您是使用Wordpress、Drupal、Joomla等CMS,或是使用PHP框架來架設網站,一定會需要儲存內容的資料庫。而備份網站就成為日後的救命丹,但是如果只有備份Wordpress的檔案,沒有備份資料庫,等到還原時,您會發現只有網站架構,之前努力耕耘的內容資料一筆都沒有。 所以,備份資料庫絕對是您該學會的一項重要的技能!

使用資料庫的優點有哪些?

  1. 資料庫的資料存取速度比一般檔案快。
  2. 可以輕鬆的查詢資料庫,來取得一組符合特定條件的資料。
  3. 資料庫有內建的機制,可處理同時發生的存取,所以身為程式員的你不需要擔心它。
  4. 資料庫可讓你隨機存取資料。
  5. 資料庫有內建的權限系統。

使用資料庫可以讓你快速地知道顧客來自哪裡,你的那一個產品賣得最好,或那一個客戶消費金額最高等問題。這些資訊可以幫你改善網站,以吸引與留住更多使用者。但是,如果是以一般檔案儲存,將無法得知這些訊息。

本文暫不深入探討資料庫,只針對如何建立網站資料庫?如何備份資料庫?如何匯入資料庫?等進行說明。

建立網站的資料庫

1.登入 MySql

打開終端機,以SSH連上伺服器 sudo mysql -u root -p 輸入sudo密碼,然後會看到下列文字 Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 1353
Server version: 10.3.18-MariaDB-0+deb10u1 Debian 10
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>

如果您想知道如何安裝MySQL,請看架設網頁伺服器指引 (LAMP)這篇文章。

2.建立一個資料庫名稱

MySQL資料庫系統可支援許多不同的資料庫,每一個應用程式應該擁有一個對應的資料庫名稱。例如要建立wordpress的資料庫,給一個名稱為wordpressdb,然後輸入create database wordpressdb;別忘記最後的分號,如下所示 MariaDB [(none)]> create database wordpressdb; 按enter之後,應該出現下列文字 MariaDB [(none)]> Query OK, 1 row affected (0.0 sec) 代表已經新增資料庫

3.設定使用者與權限

一個MySQL系統可以擁有很多使用者。基於安全的因素,root使用者通常是系統的管理者。所以我們需要為每一位使用系統的使用者設定帳戶和密碼。雖然它並非強制性的,但是為一個Web應用程式設定使用者帳戶和密碼是件好事! MariaDB [(none)]> GRANT all privileges on wordpressdb.* to 'username'@'localhost' identified by 'password';
  • GRANT:授予權利
  • all privileges:所有權限
  • wordpressdb.*:資料庫名稱後加點和星號,代表這個資料庫的所有資料表
  • username:資料庫的使用者名稱,可自行命名
  • password:用在wordpressdb這個資料庫的密碼

4.更新資料庫權限,並退出

MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> \q 到這裡,網站的資料庫已建立完成

資料庫備份

使用mysqldump指令來備份資料庫是最常用的方式,它的原理是傾印(Dumper)資料庫內容,並匯出以sql指令的形式來保存,稱為邏輯備份。用法是在終端機上使用命令列操作
要備份某個網站資料庫,則輸入指令如下: > mysqldump -h 192.168.0.1 -u root -p --wordpressdb > backup.sql
  • mysqldump:資料庫備份指令
  • -h 192.168.0.1:表示主機和ip,如果您是在主機伺服器上操作則可省略
  • -u usernmae :資料庫使用者,本文以root為代表
  • -p:需要密碼
  • --wordpressdb:要備份的資料庫名稱
  • wordpressdb.sql:備份輸出的檔案
MySQl可以有開立很多資料庫,如果要備份一整個主機內所有的資料庫,則如下操作: > mysqldump -h 192.168.0.1 -u root -p --all-databases > all.sql

從上面兩項操作,我們分別完成了單一資料庫wordpressdb和全部資料庫的備份。

資料庫還原

當我們的網站出問題或搬家,或是更新伺服器換新,須將資料庫進行還原。之前備份起來的資料庫就派上用場了!

步驟方法如下:

先登入mySQL,須輸入sudo密碼 sudo mysql -u root -p 建立一個新資料庫 MariaDB [(none)]> create database DatabaseName; 設定使用者名稱和密碼 MariaDB [(none)]> GRANT all privileges on DatabaseName.* to 'username'@'localhost' identified by 'password'; 賦於權限 MariaDB [(none)]> FLUSH PRIVILEGES; 選擇資料庫 MariaDB [(none)]> use DatabaseName; 決定編碼 MariaDB [(none)]> set names utf8; 匯入sql檔 MariaDB [(none)]> source /filepath/backup.sql

當我們把備份CMS(Wordpress/Drupal/Joomla)的備份檔案回存到虛擬主機或獨立主機的網站資料夾,並且匯入資料庫之後,若操作都正確的話,開啟瀏覽器即可看到原來的網站樣貌。這時候,您會有撿回一命的感覺,真心不騙!