linux安配置及簡單使用Mariadb

運行環境:Vmware centos7

一、MariaDB簡介

MariaDB數據庫管理系統是MySQL的一個分支,MariaDB默認的存儲引擎是Maria,不是MyLSAM,Maria可以支持事務,但是默認情況下沒有打開對事務的支持,因爲事務支持會對性能有一定的映像,可以通過下列語句來轉換爲支持事務的Maria引擎

ALTER TABLE  'tablename' ENGINE=MARIA TRANSACTIONAL=1;

MariaDB與Mysql相比較,MariaDB更強的地方在於:

  • Maria 存儲引擎

  • PBXT 存儲引擎

  • XtraDB 存儲引擎

  • FederatedX 存儲引擎

  • 更快的複製查詢處理

  • 更少的警告和bug

  • 運行速度更快

  • 更好的功能測試

  • 數據表消除

  • 支持對Unicode的排序


二、安裝MariaDB

注:當前使用的爲root用戶

1、檢查系統是否有關於mysql數據庫的文件,有的話可以執行該命令

rpm -e mysql-server
rpm -e mysql

2、使用yum安裝MariaDB,在centos7中光盤已經自帶了MariaDB的安裝包

yum -y install mariadb mariadb-server

image.png

3、啓動MariaDB,並設置開機自啓動

systemctl start mariadb
ss -ntl (MariaDB的監聽端口號爲3306)

image.png

systemctl enable Mariadb(設置開機自啓動)

image.png

三、配置Mariadb

1、爲mariadb設置密碼登陸

mysql_secure_installation

image.png

image.png

image.png

image.png

image.png

image.png

2、配置完成後,測試登陸

mysql -uroot -pcentos

image.png

3、配置MariaDB的字符集

vim /etc/my.cnf

image.png

vim /etc/my.cnf.d/mysql-clients.cnf

image.png

vim /etc/my.cnf.d/client.cnf

image.png

可以通過mysql -uroot -pcentos進入MariaDB,查看字符集可以通過以下命令:

show variables like "%character%";
show variables like "%collation%";

4、簡單使用MariaDB

(1)建立用戶並給與所有操作權限

CREATE USER 'chen'@'localhost' IDENTIFIED BY 'centos1';

image.png

測試:(成功登陸)

image.png

(2)給用戶賦予權限

GRANT SELECT ON test.lesson TO 'chen'@'localhost'

image.png

權限修改完之後需要執行命令FLUSH PRIVILEGES 命令刷新配置權限使其生效

(3)在數據庫中創建所需要的表

create table youxi (id tinyint unsigned, youximing char(20) not null, shizhi int unsigned, redu char(10 )default 'up');

image.png

desc youxi(表名)查看對錶的詳細描述

image.png

(4)往youxi表中添加內容,刪除內容

insert into youxi values (1,'wangzherongyao','6666666666',default);

image.png

一次性添加多行

insert into youxi (id,youximing,shizhi,redu) values (2,'yingxionglianmeng',88888888,default),
(3,'dixiachengyuyongshi',33333333,default),(4,'longzhigu',22222222,default);

image.png

image.png

delete from youxi where id=4;(如果不加條件語句,結果就是該表內容全部刪除)

image.png

(5)給表添加記錄修改記錄

alter table youxi add fuzeren char(20)after shizhi

image.png

image.png

update youxi set fuzeren='shyboy';

image.png

image.png

(6)表與表的連接

1、顯示學生的名字與班級名

首先查看students表中的內容,其中只有班級的ID,並沒有課程名

select * from students;

image.png

然後我們查看關於關於班級的表classes,我們發現表classes中有和students表相同的屬性classid

select * from classes;

image.png

我們可以做一個內連接(innner join)

select s.name student_name,c.class class from students s inner join classes c on s.classid=c.classid;

image.png

2、三表連接,顯示學生名和所學的課程名

從上面我們可以得知students表中有一行classid,查看一下coc中也有屬性列classid

select * from coc;

image.png

繼續查看有關課程的表courses;與此同時發現coc表中有與courses表中相同的屬性列courseid;

image.png

所以我們可以進行三表連接來表示出所需要的信息

select s.name as student_name, co.course as course from students s join coc c on s.classid=c.classid join courses co on c.courseid=co.courseid;

image.png

3、更多表的連接

在2介紹了三張表的連接,我們在其上的基礎上在連接一張表

顯示每位同學的姓名、課程及成績

首先查看關於成績的表scores,我們發現scores表中stuid與students表相同,courseid與courses表中的相同;

select * from scores;

image.png

select s.name student_name,co.course course,sc.score score from students s join coc c on s.classid=c.classid join courses co on c.courseid=co.courseid join scores sc on s.stuid=sc.stuid and co.courseid=sc.courseid;

image.png

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