Linux操作技術文檔——MySQL數據庫系統

MySQL數據庫系統

一、MySQL服務基礎

1、MySQL的編譯安裝

1、安裝依賴軟件和cmake包
在這裏插入圖片描述
在這裏插入圖片描述
2、源碼編譯及安裝
創建運行用戶
在這裏插入圖片描述
編譯安裝
在這裏插入圖片描述

-DCMAKEJNSTALL_PREFIX:指定將MySQL數據庫程序安裝到某目錄下
-DSYSCONFDIR:指定初始化參數文件目錄。
-DDEFAULT_CHARSET:指定默認使用的字符集編碼,如utf-8。
-DDEFAULT_COLLATION:指定默認使用的字符集校對規則,utf8_general_ci是適用於utf-8 字符集的通用規則。
-DWITH_EXTRA_CHARSETS:指定額外支持的其他字符集編碼。

3、安裝後的其他調整
對數據庫目錄進行權限設置
在這裏插入圖片描述
建立配置文件
在這裏插入圖片描述
初始化數據庫
在這裏插入圖片描述
設置環境變量
在這裏插入圖片描述
4、添加系統服務
在這裏插入圖片描述
在這裏插入圖片描述
注意:PIDFile=/usr/local/mysql/data/mysql.pid 中mysql.pid的mysql爲主機名
啓動mysqld服務
在這裏插入圖片描述

2、訪問MySQL數據庫

1、登錄到MySQL服務器
未設置密碼的root用戶登錄本機的MySQL數據庫
在這裏插入圖片描述
有密碼
在這裏插入圖片描述
2、執行MySQL操作語句
執行"STATUS;"語句可以查看當前數據庫服務的基本信息
在這裏插入圖片描述
3、退出“mysql>”操作環境
在這裏插入圖片描述

二、使用MySQL數據庫

1、查看數據庫結構

1、查看當前服務器中有哪些庫
在這裏插入圖片描述
2、查看當前使用的庫中有哪些表
USE語句:切換到所使用的庫
在這裏插入圖片描述
3、查看錶的結構
在這裏插入圖片描述
或者指定”庫名.表名”
在這裏插入圖片描述

2、創建及刪除庫和表

1、創建新的庫
在這裏插入圖片描述
2、創建新的表
基本格式:CREATE TABLE 表名(字段1名稱 類型,字段2名稱 類型,…,PRIMARY KEY (主鍵名))
在這裏插入圖片描述
3、刪除一個數據表
在這裏插入圖片描述
4、刪除一個數據庫
在這裏插入圖片描述

3、管理表中的數據記錄

1、插入數據記錄
語句格式:INSERT INTO 表名(字段1,字段2,…) VALUES(字段1的值,字段2的值,…)
向auth庫中的users表插入一條記錄:用戶名爲"zhangsan",對應的密碼爲 “123456”
在這裏插入圖片描述
當插入新的數據完整包括表中所有字段的值
在這裏插入圖片描述
2、查詢數據記錄
語句格式:SELECT 字段名1,字段名2,…FROM 表名 WHERE 條件表達式
顯示所有的數據記錄
在這裏插入圖片描述
查找users表中用戶名爲"zhangsan"的記錄,顯示其中用戶名、密碼字段的信息
在這裏插入圖片描述
3、修改數據記錄
語句格式:UPDATE 表名 SET 字段名1=字段值1 [,字段名2=字段值2] WHERE 條件表達式
users表中用戶名爲“lisi"的記錄,將密碼字串設爲空值
在這裏插入圖片描述
將數據庫root用戶的密碼設爲"123456",並刷新用戶授權信息
在這裏插入圖片描述
在Linux命令行環境中時,將數據庫用戶root的密碼設置爲"12345678"
在這裏插入圖片描述
4、刪除數據記錄
語句格式:DELETE FROM 表名 WHERE 條件表達式
刪除users表中用戶名爲"lisi”的數據記錄
在這裏插入圖片描述
顯示user字段爲空的用戶記錄,並用DELETE語句進行該用戶記錄的刪除
在這裏插入圖片描述

三、數據庫用戶授權

1、授予權限

語句格式:GRANT 權限列表 ON 庫名.表名 TO 用戶名@來源地址[IDENTIFIED BY,密碼,]

權限列表:用於列出授權使用的各種數據庫操作,以逗號進行分隔, 使用"all”表示所有權限,可授權執行任何操作。
庫名.表名:用於指定授權操作的庫和表的名稱,其中可以使用通配符“※” ,使用 "auth.*“表示授權操作的對象爲auth庫中的所有表。
用戶名。來源地址:用於指定用戶名稱和允許訪問的客戶機地址,即誰能連接、能從哪裏連接。來源地址可以是域名、IP地址,還可以使用”%"通配符,表示某個區域或網段內的所有地址
IDENTIFIED BY:用於設置用戶連接數據庫時所使用的密碼字符串。在新建用戶時,若省略IDENTIFIED BY"部分,則用戶的密碼將爲空。

添加一個名爲"xsqi"的數據庫用戶,並允許其從本機訪問,對auth庫中的所有表具有查詢權限,驗證密碼爲"123456"
在這裏插入圖片描述
切換到其他Shell終端,以用戶xiaoqi的身份連接數據庫查詢auth庫中users表的數據記錄
在這裏插入圖片描述
查詢其他庫中的表的記錄被拒絕
在這裏插入圖片描述
新建school庫,並授權從IP地址爲192.168.4.19的主機連接,用戶名爲"teacher”,密碼爲"pwd@123", 允許在school庫中執行所有操作。
在這裏插入圖片描述

2、查看權限

語句格式:SHOW GRANTS FOR 用戶名@來源地址
查看用戶teacher從主機192.168.4.19訪問數據庫時的授權信息
在這裏插入圖片描述

3、撤銷權限

語句格式:REVOKE 權限列表 ON 數據庫名.表名 FROM 用戶名@來源地址
撤銷用戶xiaoqi從本機訪問數據庫auth的所有權限
在這裏插入圖片描述

四、MySQL完全備份與恢復

1、數據庫備份概述

1、數據庫備份類型
從物理與邏輯的角度

冷備份:在數據庫關閉狀態下進行備份操作。
熱備份:在數據庫處於運行狀態時進行備份操作,該備份方法依賴數據庫的日誌文件。
溫備份:數據庫鎖定表格(不可寫入但可讀)的狀態下進行備份操作。

從數據庫的備份策略角度

完全備份:每次對數據進行完整的備份,即對整個數據庫的備份、數據庫結構和文件結構的備份,保存的是備份完成時刻的數據庫,是差異備份與增量備份的基礎。
差異備份:備份那些自從上次完全備份之後被修改過的所有文件,備份的時間節點是從上次完整備份起,備份數據量會越來越大。恢復數據時,只需恢復上次的完全備份與最近的一次差異備份。
增量備份:只有那些在上次完全備份或者增量備份後被修改的文件纔會被備份。以上次完整備份或上次的增量備份的時間爲時間點,僅備份這之間的數據變化,因而備份的數據量小,佔用空間小,備份速度快。但恢復時,需要從上一次的完整備份開始到最後一次增量備份之間的所有增量依 次恢復,如中間某次的備份數據損壞,將導致數據的丟失。

2、數據庫完全備份操作

1、物理冷備份與恢復
備份數據庫
在這裏插入圖片描述
恢復數據庫
在這裏插入圖片描述
2、mysqldump備份與恢復
(1)備份數據庫
格式1:備份指定庫中的部分表。
mysqldump [選項]庫名[表名1][表名2] … > /備份路徑/備份文件名
將mysql庫中的user表導出爲mysql-user.sql
在這裏插入圖片描述
格式2:備份一個或多個完整的庫(包括其中所有的表)。
mysqldump [選項]–databases 庫名1 [庫名2]…>/備份路徑/備份文件名
將整個auth庫導出爲auth.sql 文件
在這裏插入圖片描述
格式3:備份MySQL服務器中所有的庫。
mysqldump [選項]–all-databases > /備份路徑/備份文件名
創建備份文件all-data.sql,其中包括 MySQL服務器中的所有庫
在這裏插入圖片描述
(2)查看備份文件
在這裏插入圖片描述
(3)恢復數據庫
命令格式:mysql [選項][庫名][表名]< /備份路徑/備份文件名
從備份文件mysql-user.sql中將表導入test庫
在這裏插入圖片描述
備份文件auth.sql恢復auth庫
在這裏插入圖片描述

五、MySQL增量備份與恢復

常用的增量恢復的方法有三種:一般恢復、基於位置的恢復、基於時間點的恢復

1、基本概念

1、—般恢復:將所有備份的二進制日誌內容全部恢復
命令格式:mysqlbinlog [–no-defaults] 增量備份文件 | mysql -u 用戶名 -p
2、基於位置的恢復
格式1:恢復數據到指定位置:
mysqlbinlog --stop-position=‘操作id’ 二進制日誌 | mysql -u 用戶名 -p 密碼
格式2:從指定的位置開始恢復數據:
mysqlbinlog --start-position=‘操作id’ 二進制日誌 | mysql -u 用戶名 -p 密碼
3、基於時間點的恢復
格式1:從日誌開頭截止到某個時間點的恢復
mysqlbinlog [–no-defaults] --stop-datetime=‘年-月-日 小時:分鐘:秒’ 二進制日誌 | mysql -u 用戶名 -p 密碼
格式2:從某個時間點到日誌結尾的恢復。
mysqlbinlog [–no-defaults] --start-datetime=‘年-月-日 小時:分鐘:秒’ 二進制日誌 | mysql -u 用戶名 -p 密碼
I mysql -u用戶名-p密碼
格式3:從某個時間點到某個時間點的恢復。
mysqlbinlog [–no-defaults] --start-datetime=‘年-月-日 小時:分鐘:秒’ --stop-datetime=‘年-月-日小時:分鐘:秒,二進制日誌 | mysql -u 用戶名 -p 密碼

2、一般恢復

1、添加數據庫、表,錄入信息
在這裏插入圖片描述
在這裏插入圖片描述
2、開啓二進制日誌功能
在這裏插入圖片描述
在這裏插入圖片描述
3、先進行一次完全備份
在這裏插入圖片描述
在這裏插入圖片描述
4、繼續錄入新的數據並進行增量備份
在這裏插入圖片描述
刷新二進制日誌
在這裏插入圖片描述
模擬誤操作刪除user_info表
在這裏插入圖片描述
5、恢復操作
恢復完全備份
在這裏插入圖片描述
恢復增量備份
在這裏插入圖片描述

3、基於位置恢復

1、模擬誤操作刪除user_info表
在這裏插入圖片描述
恢復完全備份
在這裏插入圖片描述
查看二進制日誌文件的具體內容
在這裏插入圖片描述
在操作ID爲"460"的時候,user_info表中插入了 "sunqi"的用戶數據
在這裏插入圖片描述
恢復到操作ID爲’'460"之前的數據,即不恢復"孫七"的信息
在這裏插入圖片描述
恢復到操作ID爲’'460"之後到結束的數據,即僅恢復"孫七"的信息,跳過 "趙六"的信息恢復
在這裏插入圖片描述

4、基於時間點恢復

恢復到22:56 : 15之前的數據,即不恢復"孫七"的信息
在這裏插入圖片描述
僅恢復"孫七"的信息,跳過"趙六"的信息恢復
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章