1. 程式人生 > >MariaDB快速入門指南

MariaDB快速入門指南

mariadb 數據庫 linux 快速入門

技術分享

目錄

前言

一、數據庫中的數據結構 與SQL語言

1、數據結構

2 、SQL語言

二、MariaDB安裝及初始化配置

1、安裝

2、配置防火墻

3、初始化服務

4、小試牛刀

三、管理用戶及授權

1、創建用戶

2、給用戶授權

3、查看用戶權限

4、移除用戶權限

四、創建及管理數據庫、表單

1、創建數據庫

2、創建數據庫表單

3、修改數據表單及數據

①插入數據

②修改數據

③刪除數據

五、數據庫備份與恢復

1、數據庫備份

2、數據庫恢復


前言:

MariaDB數據庫管理系統是MySQL的一個分支,主要由開源社區在維護,采用GPL授權許可。開發這個分支的原因之一是:甲骨文公司收購了MySQL後,有將MySQL閉源的潛在風險,因此社區采用分支的方式來避開這個風險。MariaDB之於MySQL,類似於CentOS之於Redhat。由於Oracle擁有MySQL的名字和海豚商標,基於此如果各公司繼續用Mysql可能存在法律糾紛,於是紛紛開始選擇兼容性好而且研發力量強大的MariaDB。


一、數據庫中的數據結構 與SQL語言

1、數據庫簡介及數據結構

數據庫系統是一個用於數據查詢管理的軟件,數據庫系統查詢的是以特定格式存儲數據的數據庫。所以數據庫系統可以操作的數據庫並不止一個。數據庫下的數據整合單位為表,表中每行為一個元組,也就是一個實體屬性的集合,表中每一列為每個實例的形同屬性值的集合。

MariaDB屬於關系型數據庫系統(RDBS),即用實體的一些屬性信息,構成一個集合(元組),多個實體的具有相同屬性集元組構成一張列表,表內在通過域,鍵,屬性和元組上的約束條件與其他表建立關聯關系。

數據要遵守的約束 constraint

●主鍵:在眾多列中有一個列(或多個列)被標識為特殊列,此列中屬性的值在眾多實體相同的屬性中具有唯一性,該列中的值被稱為主鍵。主鍵的值不能為空。且一張表中只能有一個主鍵。

●唯一鍵:在眾多列中有一個(或多個列),每個值都能表示出該元組,也就是說該列的值具有唯一性。該列中的元素可以成為唯一鍵

●外鍵:一個表中的某字段可填入的數據取決於另一個表的主鍵或唯一鍵已有的數據

●檢查:字段值在一定範圍內


2、 SQL語言

SQL語言可以理解成向服務端提問的語言,SQL語言按照功能可以分為幾種子語言:

數據定義語言(DDL):創建和管理數據庫,包括創建修改表,定義索引,管理約束條件。DDL操作對象為數據庫內部的對象。

數據操縱語言(DML):查詢和更新數據庫中的數據,用於添加,刪除,更新,查詢。DML的操作對象是表的內部數據。而不會涉及到表的定義,結構的修改。

數據控制語言(DCL) :對用戶的權限控制

數據查詢語言(dql):對數據庫查詢

SQL語言查詢的的操作可以分為:

限制(選擇):挑選出符合條件的行。返回與查詢語句中的條件(斷言相匹配的元組)

投影:只返回元組中相關的列,即返回元組中相關的屬性

聯結:返回與聯結條件相匹配的元組,

聯結條件可以分為:

有條件聯結(條件聯結)

無需滿足任何條件(笛卡爾積)


二、MariaDB安裝及初始化配置

1、安裝:

Centos 7 yum倉庫默認就有mariadb安裝包直接安裝即可。

yum install mariadb mariadb-server -y #安裝mariadb客戶端和服務端程序
systemctl start mariadb		  #啟動程序
systemctl enable mariadb		   #設為開機自啟動

2、配置防火墻

很多生產環境中需要使用站庫分離的技術,如果需要讓root管理員帳戶能夠用遠程訪問數據庫,可設置防火墻允許對本機mysql服務程序的訪問請求即可:

技術分享

3、初始化服務

安裝完成後需進行初始化設置:

mysql_secure_installation	      #直接執行初始化命令,會彈出交互配置信息
Enter current password for root (enter for none):#初次進入密碼為空,直接回車
New password: 	           #輸入要為root用戶設置的數據庫密碼。
Re-enter new password:            #重復再輸入一次密碼。
Remove anonymous users? [Y/n] y      #刪除匿名帳號
Disallow root login remotely? [Y/n] n #是否禁止root用戶從遠程登錄,安全起見應禁止,這裏為做實驗方便這裏不禁止。
Remove test database and access to it? [Y/n] y	#是否刪除test數據庫,想留著也隨意
Reload privilege tables now? [Y/n] y        #刷新授權表,讓初始化後的設定立即生效

確認服務是否開啟,默認監聽在tcp3306端口

技術分享

4、小試牛刀

①使用mysql -u “用戶名” -p 指明用密碼登錄,回車輸入密碼即可。可輸入help;查看使用幫助。

技術分享 tips:-u用用戶名之間可用空格也可不用空格。

-p不指定密碼可回車輸入密文密碼,如想明文輸入與密碼間不能用空格。

如:

mysql -uroot -p12345678

②使用set password = password(‘密碼‘) ; 設定密碼

使用select user(); 查看當前登錄用戶 技術分享 tips:① mariadb中命令都要以";" 結尾,表示命令輸入完畢。

② 數據庫中的用戶root和其他用戶名與當前操作系統用戶名無關,你可以把數據庫軟件當作一種操作系統,有自己的用戶列表,root為管理員。

三、管理用戶及授權

生產中數據庫管理系統需要多部門協同管理數據庫內容,所以需要創建出多個數據庫專用的帳戶,然後再進行合理的權限分配,以達到提升工作效率的目的。

1、創建用戶的語法為:CREATE USER 用戶名@主機名 IDENTIFIED BY ‘密碼‘;

tips: 數據庫中用戶名全稱由兩部分組成,"用戶名"@"登陸終端(可以是IP地址)"。

2、給用戶授權使用GRANT命令,授權命令常用格式如下:

命令作用
GRANT 權限 ON 數據庫.表單名稱 TO 用戶名@主機名對某個特定數據庫中的特定表單給予授權。
GRANT 權限 ON 數據庫.* TO 用戶名@主機名對某個特定數據庫中的所有表單給予授權。
GRANT 權限 ON *.* TO 用戶名@主機名對所有數據庫及所有表單給予授權。
GRANT 權限1,權限2 ON 數據庫.* TO 用戶名@主機名對某個數據庫中的所有表單給予多個授權。
GRANT ALL PRIVILEGES ON *.* TO 用戶名@主機名對所有數據庫及所有表單給予全部授權,(謹慎操作)。

例:技術分享

3、查看用戶權限使用show grants for "用戶名全稱";

技術分享

4、同時移除用戶權限用命令revoke代替GRANT即可。

技術分享

四、創建及管理數據庫、表單

MariaDB數據庫管理系統最重要的作用之一就是能夠管理數據庫及表單內容,一個數據庫中可以存放多個數據表,數據表是數據庫中最實質的內容。

常用管理數據庫及表單命令

用法

作用

CREATE database 數據庫名稱。

創建新的數據庫。

DESCRIBE 表單名稱;

描述表單。

UPDATE 表單名稱 SET attribute=新值 WHERE attribute > 原始值;

更新表單中的數據。

USE 數據庫名稱;

指定使用的數據庫。

SHOW databases;

顯示當前已有的數據庫。

SHOW tables;

顯示當前數據庫中的表單。

SELECT * FROM 表單名稱;

從表單中選中某個記錄值。

DELETE FROM 表單名 WHERE attribute=值;

從表單中刪除某個記錄值。

1、創建數據庫示例:

技術分享

2、創建數據庫表單示例:

要想創建數據表單,就要用use切換到某個指定的數據庫中,如在新建的shudian數據庫中創建一個叫做mybook的表單。新建表單需要進行表單初始化即需要定義存儲數據內容的結構,咱們分別定義三個字段項,能夠存儲15個字符的name字段是用來保存書籍名稱的,而整數類型的price與pages則分別存儲書籍價格和頁數。

技術分享 3、修改數據表單及數據

①插入數據:

向剛剛創建的mybook數據庫表單寫入一條書籍信息,插入數據庫內容要使用insert命令,寫清表單名稱以及對應的字段項目,就可以插入一條名稱叫做linuxprobe的書籍啦,它的價格和頁數分別是60元和518頁。命令執行後也就意味著書籍信息已經被寫入成功了,咱們便可以來查詢表單中的內容啦,使用select命令查詢表單內容的時候需要加上想要查詢的字段,如果想查看表單中的所有內容也可以幹脆使用*(星號)通配符來顯示所有內容:

技術分享

②修改數據:

update命令把剛剛插入的書籍價格修改為55元,然後再用select命令指定查看下書籍的名稱和價格信息。

技術分享

③刪除表單

技術分享

4、數據庫內容查詢

一般數據庫表單中都會有成千上萬條的數據條目,例如剛剛創建用於保存書籍信息的mybook表單,如果經過時間的推移裏面的書籍信息也會變得越來越多,那麽如果只是想查看售賣價格大於某個價格的書籍時又該如何定義查詢語句呢?咱們先使用剛剛學習過的insert插入命令來依次插入4條書籍信息:技術分享

要想讓查詢結果更加精準,那麽就需要把select結合where命令來一起使用了,where是用於在數據庫中進行匹配查詢的條件命令,咱們可以設置一個查詢的條件,那麽就僅會查找出符合該條件的數據內容,常用的參數包括有:

參數

作用

=

相等。

<>或!=

不相等。

>

大於。

<

小於。

>=

大於或等於。

<=

小於或等於。

BETWEEN

在某個範圍內。

LIKE

搜索一個例子。

IN

在列中搜索多個值。

例:查找出mybook表單中價格大於40元或價格不等於60元的書籍

技術分享

五、數據庫備份與恢復

1、數據庫備份

mysqldump命令用於備份數據庫數據,格式為:“mysqldump [參數] [數據庫名稱],其中參數與mysql命令大致相同,-u參數用於定義登陸數據庫的用戶名稱,而-p參數代表密碼提示符。例如接下來把linuxprobe數據庫內容導出成一個文件保存到root管理員用戶的家目錄中:

技術分享

2、數據庫恢復

上一步中已將數據庫備份,這次我們來嘗試刪除數據庫並恢復。

技術分享

數據恢復方法如下:

 mysql -u root -p linuxprobe < /root/linuxprobeDB.dump


本文出自 “linux運維” 博客,請務必保留此出處http://arm2012.blog.51cto.com/2418467/1967674

MariaDB快速入門指南