備份資料庫的sql語句是“mysqldump”,語法格式“mysqldump -u 使用者名稱-p 資料庫名稱[資料表名稱...]> 備份檔案名稱.sql”;其中,“> 」用來告訴mysqldump將備份資料表的定義和資料寫入備份檔。

本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。
資料庫的主要功能就是對資料進行保存和維護,所以備份資料是資料庫管理中最常用的操作。為了防止資料庫意外崩潰或硬體損傷而導致的資料遺失,資料庫系統提供了備份和復原策略。
保證資料安全的最重要的一個措施就是定期的對資料庫進行備份。這樣即使發生了意外,也會把損失降到最低。
資料庫備份是指透過匯出資料或複製表格檔案的方式來製作資料庫的副本。當資料庫發生故障或遭到破壞時,將備份的資料庫載入到系統,使資料庫從錯誤狀態還原到備份時的正確狀態。
MySQL 中提供了兩種備份方式,分別是 mysqldump 指令以及 mysqlhotcopy 腳本。由於 mysqlhotcopy 只能用於 MyISAM 表,所以 MySQL 5.7 移除了 mysqlhotcopy 腳本。
使用 mysqldump 指令備份資料庫
#mysqldump 指令執行時,可以將資料庫中的資料備份成一個文字檔。資料表的結構和資料將儲存在生成的文字檔案中。
使用mysqldump 指令備份一個資料庫的語法格式如下:
1 | mysqldump -u username -p dbname [tbname ...]> filename.sql
|
登入後複製
對上述語法參數說明如下:
username
# :表示使用者名稱;
dbname
:表示需要備份的資料庫名稱;
##tbname:表示資料庫中需要備份的資料表,可以指定多個資料表。省略此參數時,會備份整個資料庫;
- 右箭頭「
>」:用來告訴mysqldump 將備份資料表的定義和資料寫入備份檔案;
filename.sql:表示備份檔案的名稱,檔案名稱前面可以加絕對路徑。通常將資料庫備份成一個後綴名為.sql的檔案。
注意:mysqldump 指令備份的檔案並非一定要求後綴名為.sql,備份成其他格式的檔案也是可以的。例如,後綴名為.txt的檔案。通常情況下,建議備份成後綴名為.sql 的檔案。因為,後綴名為.sql的檔案給人第一感覺就是與資料庫有關的檔案。
範例:
下面使用 root 使用者備份 test 資料庫下的 student 表。打開命令列(cmd)窗口,輸入備份命令和密碼,運行過程如下:
1 2 | C:\Windows\system32>mysqldump -uroot -p test student>C:\student.sql
Enter password: ****
|
登入後複製
注意:mysqldump 命令必須在 cmd 窗口下執行,不能登入 MySQL 服務中執行。
輸入密碼後,MySQL 會對 test 資料庫下的 student 資料表進行備份。之後就可以在指定路徑下查看剛才備份過的檔案了。 student.sql 檔案中的部分內容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | -- MySQL dump 10.13 Distrib 5.7.29, for Win64 (x86_64)
--
-- Host: localhost Database: test
-- ------------------------------------------------------
-- Server version 5.7.29-log
;
;
--此处删除了部分内容
--
-- Table structure for table `student`
--
DROP TABLE IF EXISTS `student`;
;
;
CREATE TABLE `student` (
`id` int(4) NOT NULL,
`name` varchar(20) DEFAULT NULL,
`stuno` int(11) DEFAULT NULL,
`age` int(4) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
;
--
-- Dumping data for table `student`
--
LOCK TABLES `student` WRITE;
;
INSERT INTO `student` VALUES (1,'zhangsan',23,18),(2,'lisi',24,19),(3,'wangwu',25,18),(4,'zhaoliu',26,18);
;
UNLOCK TABLES;
;
......
-- Dump completed on 2019-03-09 13:03:15
|
登入後複製
student.sql 檔案開頭記錄了 MySQL 的版本、備份的主機名稱和資料庫名稱。
檔案中,以「--」開頭的都是 SQL 語言的註解。以 “/*!40101” 等形式開頭的是與 MySQL 有關的註解。 40101 是 MySQL 資料庫的版本號,這裡就表示 MySQL 4.1.1。如果還原資料時,MySQL 的版本比 4.1.1 高,「/*!40101」和「*/」之間的內容被當作 SQL 指令來執行。如果比 4.1.1 低,「/*!40101」和「*/」之間的內容被當作註釋。 「/*!」和「*/」中的內容在其它資料庫中將被作為註釋忽略,這可以提高資料庫的可移植性。
DROP 語句、CREATE 語句和INSERT 語句都是資料庫復原時使用的;「DROP TABLE IF EXISTS 'student' 」語句用來判斷資料庫中是否還有名為student 的表,如果存在,就刪除這個表;CREATE 語句用來建立student 表;INSERT 語句用來恢復所有資料。文件的最後記錄了備份的時間。
注意:上面 student.sql 檔案中沒有建立資料庫的語句,因此,student.sql 檔案中的所有資料表和記錄必須恢復到一個已經存在的資料庫中。復原資料時,CREATE TABLE 語句會在資料庫中建立資料表,然後執行 INSERT 語句向表中插入記錄。
執行完後,可以在
C:\下面看到名為 all.sql 的文件,這個文件中儲存著所有資料庫的資訊。
相關免費學習推薦:
mysql影片教學#
以上是備份資料庫的sql語句是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!