數(shù)據(jù)庫-簡介與安裝-01

一.數(shù)據(jù)庫課程介紹

1.課程大綱(作為DBA必會)
    數(shù)據(jù)庫介紹
    mysql版本為5.7 介紹及安裝
    mysql的體系結(jié)構(gòu)及基礎管理
    sql基礎 語句+元數(shù)據(jù)獲取
    索引及執(zhí)行計劃管理
    存儲引擎
    日志
    備份恢復
    主從復制
    高可用及讀寫分離
    分布式數(shù)據(jù)庫
    mysql全面優(yōu)化
    DBA就業(yè)指導
    redis MongoDB ElasticSearch

2.IT人員具備的職業(yè)素養(yǎng)

1.人品
2.嚴謹
3.心態(tài)
4.細心

3.熟悉操作系統(tǒng)(精通)

Linux centos6/7/8

4.熟悉云架構(gòu)

docker

5.熟悉業(yè)務

業(yè)務
產(chǎn)品的功能
用戶的行為

6.熟悉行業(yè)

數(shù)據(jù)排名https://db-engines.com/en/
參加數(shù)據(jù)庫大會
跟行業(yè)牛人交流

7.喜歡數(shù)據(jù)庫

堅持
自己品P狡丁!T捌ァ深纲!

====================================

二.數(shù)據(jù)庫產(chǎn)品介紹

1.數(shù)據(jù)庫管理系統(tǒng)(DBMS)database management servier/Database Management System
  RDBMS    關系型數(shù)據(jù)庫
    oracle   
    mysql
    mssql 
    PG
  NOSQL    非關系型數(shù)據(jù)庫
    mongodb
    redis
    ES
    memcached  
  MEWSQL   分布式數(shù)據(jù)庫
    RDS,DRDS   ---->alisql      TDDL    
    polarDB      ---->OB(做成一體機)
    pincap     tidb
2.MySQL產(chǎn)品分支(了解)
  oracle  MySQL
  MariaDB  5.5  -----> 10.0
  percona  MySQL
  RDS/TDSQL  云數(shù)據(jù)庫
3.MySQL  企業(yè)版本選擇
  5.6   5.6.34  5.6.36  5.6.38 
  5.7   5.7.18  5.7.20  5.7.22  5.7.24  5.7.26(現(xiàn)在使用的)
  8.0   8.0.10之前都是測試版本  8.0.11
  GA時間:5.6.38  5.7.20 2017-09-13
MySQL二進制版本下載地址https://downloads.mysql.com/archives/community/
圖片.png

三.MySQL 5.7.26 二進制版本 手撕(安裝)

1.規(guī)劃
OS: Centos 7.6 
磁盤: 20G(system)+50G(/data)
IP:10.0.0.51 
hostname: db01 
/etc/hosts10.0.0.51 db01
iptables: OFF 
SELINUX: disabled
2.數(shù)據(jù)目錄規(guī)劃
[root@db01 ~]# mkfs.xfs  /dev/sdb
[root@db01 ~]# blkid
/dev/sda1: UUID="fd2e0ca7-32be-425f-86a2-85c02b9ec5ea" TYPE="xfs" 
/dev/sda2: UUID="79a3924b-739e-48dc-ab0c-0444b9ac6591" TYPE="swap" 
/dev/sda3: UUID="3a3a295f-88f8-456d-94dc-1a3eeb517c02" TYPE="xfs" 
/dev/sdb: UUID="8c6d28bb-4c6e-4ea3-a59d-5a256b3b56fc" TYPE="xfs" 
[root@db01 ~]# vim /etc/fstab 
添加:
UUID="8c6d28bb-4c6e-4ea3-a59d-5a256b3b56fc" /data                 xfs     defaults        0 0

[root@db01 ~]# mkdir /data
[root@db01 ~]# mount -a
[root@db01 ~]# df -h
3.軟件上傳解壓
[root@db01 /usr/local]# tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
文件該名稱或者創(chuàng)建軟連接:mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql
4.原始環(huán)境檢查
①檢查有沒有原來版本的軟件霞丧,如果有就 卸載:
檢查:rpm -qa|grep mariadb
卸載:yum remove mariadb-libs -y
5.用戶權(quán)限準備
創(chuàng)建虛擬用戶:useradd -s /sbin/nologin -M mysql
修改目錄權(quán)限:chown -R mysql.mysql /data
            chown -R mysql.mysql /usr/local/mysql
6.設置環(huán)境變量
  vim /etc/profile 
  添加:export PATH=/usr/local/mysql/bin:$PATH
  讓這個文件重啟一下生效:source /etc/profile
檢查一下有沒有安裝成功:mysql -V(大寫)
 顯示結(jié)果:mysql  Ver 14.14 Distrib 5.7.26, for linux-glibc2.12 (x86_64) using  EditLine wrapper
5.7以后的版本有兩種方法可以設置密碼
一種是系統(tǒng)自動生成的 但是密碼非常的麻煩呢岗,不容易記住:mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
另外一種是自己設置的:mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
(密碼可以要也可以不要)
報錯:mysqld: error while loading shared libraries libaio.so.1: cannot open shared object file: No such file or directory
解決方法:yum install -y libaio-devel
說明
--initialize             使用一種安全的模式初始化數(shù)據(jù).   
特點:   1. 初始密碼   2. 密碼復雜度    3. 密碼過期時間??
--initialize-insecure    使用一種不安全的模式初始化數(shù)據(jù).
1. 無密碼    2. 無密碼復雜度   
5.7以前的版本只有一種方法
    /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
7.編寫配置文件
vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
##四.MySQL的體系結(jié)構(gòu)
#####1.MySQL  c/s結(jié)構(gòu)
    server端:mysqld
    clint端:mysql蛹尝,mysqldump后豫,第三方程序(開發(fā))
#####2.

公司: BoSS + 經(jīng)理 + 員工 + 辦公區(qū)
實例: mysqld + Mater Thread + 干活Thread + 專用內(nèi)存



#####3.mysqld核心程序結(jié)構(gòu)
    0.面試:1條sql語句在mysql中是如何處理的?
    1.sql語句:結(jié)構(gòu)化查詢語句
    2.sql分類:DDL(數(shù)據(jù)定義語言)突那,DCL(數(shù)據(jù)控制語言)挫酿,DML(數(shù)據(jù)操作語言)
    3.一條sql語句:
![圖片.png](https://upload-images.jianshu.io/upload_images/18572205-6e413c2a5a8fb8a7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4.sql語句的執(zhí)行過程
    連接層:
        ①提供連接協(xié)議
        TCP/IP:網(wǎng)絡scoke=IP+Port
        本地socket:socket文件
        ②驗證用戶名密碼,ip
        ③提供連接線程
            負責:sql接受和結(jié)果的反饋
圖片.png
    sql層
        (1):語法檢查
        (2):語義檢查
        (3):權(quán)限檢查
        (4):解析:生成多種執(zhí)行計劃數(shù)
        (5):優(yōu)化器:判斷哪一種執(zhí)行計劃愕难,代價最低
            資源代價:CPU早龟,IO,MEM
        (6):執(zhí)行器:執(zhí)行優(yōu)化器選擇后的執(zhí)行計劃執(zhí)行猫缭。得到需要查詢數(shù)據(jù)的存儲位置
      存儲引擎層:(文件系統(tǒng))
            和磁盤打交道的層次拄衰,
            轉(zhuǎn)回給sql層,結(jié)構(gòu)域化成表饵骨,通過連接線程返回結(jié)果翘悉。
執(zhí)行過程簡圖

五.物理存儲結(jié)構(gòu)

宏觀(角度觀察):
myisam存儲引擎
    -rw-r----- 1 mysql mysql   10816 Nov 11 12:03 user.frm   表結(jié)構(gòu)
    -rw-r----- 1 mysql mysql     340 Nov 11 12:03 user.MYD   表數(shù)據(jù)
    -rw-r----- 1 mysql mysql    4096 Nov 11 12:03 user.MYI   索引
INNODB 存儲引擎表(5.5以后主用innodb):
    time_zone.frm  表結(jié)構(gòu)
    time_zone.ibd  數(shù)據(jù)+索引(IOT)
微觀(角度觀察):
segment(段):一個(非分區(qū)表)表就是一個段,由一個或多個區(qū)構(gòu)成居触。
extent(區(qū)   :《連續(xù)》的64個page妖混,默認1M
page(頁)   :MySQL的最小物理IO單元,默認IO(1頁=16kb)轮洋,《連續(xù)》的4個OS block

六.MySQL邏輯結(jié)構(gòu)(邏輯概念)

庫 -------> 目錄
表 ------->表文件
列 :列名+列屬性(約束制市,數(shù)據(jù)類型,其他屬性)
行 :記錄
屬性:數(shù)據(jù)行弊予,權(quán)限等....

七:mysql基礎管理

1.mysql的用戶管理
作用祥楣?
登錄mysql    管理mysql
2.用戶的定義
用戶名@'白名單'
什么是白名單?允許用戶登錄的"范圍" (ip段)
oldguo@'10.0.0.5%'  
oldguo@'10.0.0.%'
oldguo@'10.0.0.0/255.255.254.0'
==================
oldguo@'10.0.0.254'
oldguooldguo@'%'
oldguo@'%'
oldguo@'localhost'
oldguo@'oldguo.com'
3.用戶的管理命令
1.查
5.7+:mysql> select user,host ,authentication_string from mysql.user;
5.7-:mysql> select user,host ,password  from mysql.user;
2.增(創(chuàng)建用戶)
mysql> create user oldboy@'10.0.0.%'; 
3.改
alter user oldboy@'10.0.0.%'  identified by '123';
4.刪
drop user oldboy@'10.0.0.%';
4.權(quán)限的定義
權(quán)限定義方法:  GRANT ALL ON 權(quán)限作用范圍  TO 用戶 IDENTIFIED BY 密碼;
GRANT SELECT, INSERT, UPDATE, DELETE ON oldguo.*  TO  oldguo@'10.0.0.%'  IDENTIFIED  BY '123'
權(quán)限作用范圍:
*.*  -R /
oldboy.*  -R /oldboy
oldboy.t1 /oldboy/t1
5.權(quán)限管理
①授權(quán)
  例子:創(chuàng)建并授權(quán)超級管理員用戶root汉柒,能夠通過10網(wǎng)段任意地址管理數(shù)據(jù)庫.
grant all on *.* to root@'10.0.0.%' identified by '123' with grant option;
2.查詢用戶權(quán)限
show grants for root@'10.0.0.%';
例子2: 創(chuàng)建一個應用用戶app,能夠通過10網(wǎng)段訪問(SELECT, INSERT, UPDATE, DELETE)app庫的所有表
grant SELECT,INSERT,UPDATE,DELETE on app.* to app@'10.0.0.%' identified by '123';
回收:
說明:多次授權(quán)是疊加關系误褪,修改權(quán)限只能回收
收回app的刪除權(quán)限
show grants for app@'10.0.0.%';
grant SELECT,INSERT,UPDATE,DELETE on app.* to app@'10.0.0.%' identified by '123';
給權(quán)限 
revoke delete on app.* from app@'10.0.0.%';收回權(quán)限的方法

新特性:

8.0以前:命令權(quán)限
  all
SELECT, INSERT, UPDATE, DELETE, CREATE, RELOAD, 
SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER,
 SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, 
REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW,   
CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, 
TRIGGER, CREATE TABLESPACE,DROP
with grant option
8.0以后:支持角色功能,自由打包需要的權(quán)限

作業(yè):

實現(xiàn)systemd模式管理mysql啟動關閉(systemd); systemctl start/stop/restart mysqld
vim /etc/systemd/system/mysqld.service 
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
或者:   
chkconfig --add mysqld 
systemctl start/stop/restart  mysqld 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末碾褂,一起剝皮案震驚了整個濱河市兽间,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌正塌,老刑警劉巖嘀略,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恤溶,死亡現(xiàn)場離奇詭異,居然都是意外死亡帜羊,警方通過查閱死者的電腦和手機咒程,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讼育,“玉大人帐姻,你說我怎么就攤上這事】” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵巍杈,是天一觀的道長忧饭。 經(jīng)常有香客問我,道長筷畦,這世上最難降的妖魔是什么词裤? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮鳖宾,結(jié)果婚禮上吼砂,老公的妹妹穿的比我還像新娘。我一直安慰自己鼎文,他們只是感情好渔肩,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拇惋,像睡著了一般周偎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上撑帖,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天蓉坎,我揣著相機與錄音,去河邊找鬼胡嘿。 笑死蛉艾,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的衷敌。 我是一名探鬼主播勿侯,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼缴罗!你這毒婦竟也來了罐监?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤瞒爬,失蹤者是張志新(化名)和其女友劉穎弓柱,沒想到半個月后沟堡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡矢空,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年航罗,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屁药。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡粥血,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出酿箭,到底是詐尸還是另有隱情复亏,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布缭嫡,位于F島的核電站缔御,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏妇蛀。R本人自食惡果不足惜耕突,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望评架。 院中可真熱鬧眷茁,春花似錦、人聲如沸纵诞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浙芙。三九已至雇逞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間茁裙,已是汗流浹背塘砸。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晤锥,地道東北人掉蔬。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像矾瘾,于是被迫代替她去往敵國和親女轿。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348