第18章:使用 MariaDB 數據庫管理系統
本章學習內容有:介紹數據庫以及數據庫管理系統的理論知識;介紹 MariaDB 數據庫管理系統;學習MariaDB的常規操作,如賬戶的創建與管理、賬戶權限、新建數據庫、新建數據表、數據的增刪改查等;學習數據庫的備份與恢復操作。
一、數據庫管理系統
1、什麼是數據庫管理系統?
數據庫是指按照某些特定結構來存儲數據資料的數據倉庫。數據庫技術也從最初只能存儲簡單的表格數據的單一集中存儲模式,發展到了現如今存儲海量數據的大型分佈式模式。
數據庫管理系統是一種能夠對數據庫中存放的數據進行建立、修改、刪除、查找、維護等操作的軟件程序。它通過把計算機中具體的物理數據轉換成適合用戶理解的抽象邏輯數據,有效地降低數據庫管理的技術門檻,因此即便是從事 Linux 運維工作的工程師也可以對數據庫進行基本的管理操作。
2、對比 MariaDB 和 MySQL
MySQL 數據庫項目自從被 Oracle 公司收購之後,從開源軟件轉變成爲了“閉源”軟件,這導致 IT 行業中的很多企業以及廠商紛紛選擇使用了數據庫軟件的後起之秀—MariaDB 數據庫管理系統。MariaDB 數據庫管理系統也因此快速佔據了市場。
RHEL 7、CentOS 7 以及最新的 Fedora 系統中,都將 MariaDB 作爲默認的數據庫管理系統。
MariaDB 和 MySQL 在性能上基本保持一致,兩者的操作命令也十分相似。從務實的角度來講,在掌握了 MariaDB 數據庫的命令和基本操作之後,在今後的工作中即使遇到 MySQL 數據庫,也可以快速上手。
相較於 MySQL,MariaDB 數據庫管理系統有了很多新鮮的擴展特性,例如對微秒量級的支持、線程池、子查詢優化、進程報告等。
二、開始使用 MariaDB 數據庫系統
1、安裝 MariaDB 程序
安裝 mariadb、mariadb-server,啓動 mariadb 服務,並將其添加到開機啓動項中。
yum install mariadb
yum install mariadb-server
systemctl start mariadb
systemctl enable mariadb
2、初始化 mariadb 服務
在確認 MariaDB 數據庫軟件程序安裝完畢併成功啓動後請不要立即使用。爲了確保數據庫的安全性和正常運轉,需要先對數據庫程序進行初始化操作。這個初始化操作涉及下面 5 個步驟:
使用mysql_secure_installation
命令完成 mariadb 服務的初始化:
注意:在很多生產環境中都需要使用站庫分離的技術(即網站和數據庫不在同一個服務器上),如果需要讓 root 管理員遠程訪問數據庫,上述mariadb服務初始化時應該選擇允許遠程登錄。另外,還需要設置防火牆,使其放行對數據庫服務程序的遠程訪問請求,數據庫服務程序默認會佔用 3306 端口,在防火牆策略中服務名稱統一叫作 mysql。
filewall-cmd --permanent --add-service=mysql
firewall-cmd --reload
3、登錄 MariaDB 數據庫
一切準備就緒。現在我們將首次登錄 MariaDB 數據庫。其中,-u 參數用來指定以 root 管理員的身份登錄,而 -p 參數用來驗證該用戶在數據庫中的密碼值。
注意:在使用數據庫命令操作MariaDB數據庫時,所有的數據庫命令都必須以分號(;)結束。
4、修改MariaDB數據庫的登錄密碼
三、管理 MariaDB數據庫的用戶及其權限
在生產環境中總不能一直“死啃”數據庫的root 管理員。爲了保障數據庫系統的安全性,以及讓其他用戶協同管理數據庫,我們可以在 MariaDB 數據庫管理系統中爲他們創建多個專用的數據庫管理賬戶,然後再分配合理的權限,以滿足他們的工作需求。
1、創建數據庫用戶
可使用 root 管理員登錄數據庫管理系統,然後按照“CREATE USER 用戶名@主機名 IDENTIFIED BY '密碼'; ”的格式創建數據庫管理賬戶。
使用 select 命令查詢指定用戶的字段信息:
此時的數據庫用戶 geek,僅僅是一個普通賬戶,沒有數據庫的任何操作權限。測試如下:
2、爲普通用戶進行授權
數據庫管理系統所使用的命令一般都比較複雜。grant 命令用於給數據庫賬戶授權,在使用 grant 命令時需要寫上要賦予的權限、數據庫及表單名稱,以及對應的賬戶及主機信息。該命令的常用格式如下:
爲普通賬戶的授權工作是需要數據庫管理員來執行的。下面示例,以 root 管理員來爲普通用戶進行授權。
1)查看 geek 用戶的權限信息。
2)授予 geek 對 mysql 數據庫中 user 表的“增刪改查”權限。
3)切換至 geek 用戶,來測試它對 mysql 數據庫中 user 表的權限是否生效。
3、如何刪除指定用戶的權限?
使用 revoke 命令可以移除用戶授權。revoke 命令的使用方法和 grant 命令完全一致。
四、創建數據庫與數據表
在 MariaDB 數據庫管理系統中,一個數據庫可以存放多個數據表,數據表單是數據庫中最重要最核心的內容。我們可以根據自己的需求自定義數據庫表結構,然後在其中合理地存放數據,以便後期輕鬆地維護和修改。
1、創建數據庫和數據表時常用的命令
2、創建數據庫
建立數據庫是管理數據的起點。下面創建一個名爲 goods 數據庫。
3、創建數據表
要想創建數據表單,需要先切換到某個指定的數據庫中。然後進行表單的初始化,即定義存儲數據內容的結構。下面我們在 goods 數據庫中創建一張名爲 books 的數據表。
五、對數據表執行“增刪改查”
對數據庫運維人員來講,需要做好四門功課 —— 增、刪、改、查。
1、向數據表中插入一條數據
2、修改數據表中的數據
3、刪除數據表中的數據
4、多功能的查詢語句
要想讓查詢結果更加精準,就需要結合使用 select 與 where 命令了。其中,where 命令是在數據庫中進行匹配查詢的條件命令。通過設置查詢條件,就可以僅查找出符合該條件的數據。where 命令常用的查詢參數如下:
六、數據庫的備份與恢復
數據庫的備份與恢復,比較重要,對Linux運維人員來講是必須要掌握的。
1、數據庫的備份
mysqldump 命令用於備份數據庫數據,格式爲“mysqldump [參數] [數據庫名稱]”。其中參數與 mysql 命令大致相同,-u 參數用於定義登錄數據庫的賬戶名稱,-p 參數代表密碼提示符。
下面示例,把 goods 數據庫中的數據導出成一個文件,並保存到 root 管理員的家目錄中。
2、數據庫的恢復
進入 MariaDB 數據庫管理系統,徹底刪除 goods 數據庫。
接下來我們開始恢復 goods 數據庫:先在創建 goods 數據庫,再使用輸入重定向符把上述備份的數據庫文件導入到 mysql 命令中,即可實現數據庫的恢復。
再次登錄數據庫,即可看到 goods 數據庫、books 數據表,以及其中的數據行了。
mysql -u root -p
show databases;
use goods;
show tables;
describe books;
select * from books;
本章複習題
本章 END 2019-01-16