Mysql入門二十小題(DBA老司機帶你刪庫到跑路)2018.11.26
1、 請介紹資料庫管理系統的種類及代表產品
RDBMS: mysql oracle mssql
NoSQL: redis mongoab memcache
2、 請簡述資料庫管理系統的作用
資料儲存,管理資料,備份恢復,安全性,許可權管理,
3、 請簡述RDBMS和NoSQL的特性對比
RDBMS:強大的查詢功能、強一致性、二級索引、支援事務。支援SQL
NoSQL:靈活性強,可擴充套件,效能高,支援分散式。不支援SQL,json
4、 請簡述資料庫啟動報錯的基本處理思路
(1)命令列有沒有報錯
(2)錯誤日誌
5、 簡述例項的構成
程序+多個執行緒+預分配記憶體結構
6、 簡述SQL的執行過程(連線層——SQL層——儲存引擎層)
連線層:提供連線協議(TCP/IP 、 socket)
驗證使用者的合法性
接收SQL語句,並傳遞給SQL層
SQL:接收連線層傳來的SQL語句
判斷語法(如果語法有錯,報語法錯誤)
判斷語義
解析器
優化器
執行器
提供一個專用執行緒和儲存引擎層互動
如果有快取,記錄到快取,記錄日誌
儲存引擎層:接收SQL層傳來的SQL語句
去檔案中取出相應資料
結構化成表,返回給SQL
7、 mysql命令常用options
-u使用者名稱 -p密碼 -h主機域 -S socket檔案 -P埠 -e 執行SQL
-u:指定使用者
-p:指定密碼
-h:指定主機
-P:指定埠
-S:指定sock
-e:指定SQL
8、 簡述my.cnf檔案的功能
影響例項啟動
影響客戶端連線
9、 列出mysql啟動和關閉的方法
centos6:/etc/init.d/mysqld start stop
centos7:systemctl start stop mysqld
mysqld_safe &
mysqladmin -u -p shutdown
10、 簡述mysql配置檔案讀取順序
/etc/my.cnf
/etc/mysql/my.cnf
$MYSQL_HOME/my.cnf(前提是在環境變數中定義了MYSQL_HOME變數)
defaults-extra-file=/tmp/my.cnf
~/my.cnf
–defaults-extra-file 加上這個引數以上配置檔案均不讀取
11、請簡述忘記root使用者密碼的解決思路
(1)先停庫
(2)mysqld_safe –skip-grant-tables –skip-networking &
(3)連庫(mysql)
(4)使用update修改密碼
12、請寫出MySQL中修改密碼的方法(不需要寫出具體SQL)
(1)update
(2)set
(3)grant
(4)mysqladmin
13、請概括MySQL的邏輯結構
庫,表,元資料,列
14、請概括MySQL的物理結構(一句話說明)
Mysql的物理結構就是最底層的資料檔案
15、企業中開發讓你開MySQL的使用者,請簡述開使用者的流程及思路
開發人員說:請給我開一個使用者
溝通:
1、你需要對哪些庫、表進行操作
2、你從哪裡連線過來
3、使用者名稱有沒有要求
4、密碼要求
5、發郵件
開發人員說:Root使用者給我唄??
溝通: what?
16、MySQL的使用者是如何定義的,有哪幾種寫法?
1) [email protected]’主機域’
2)主機域:可以理解為是MySQL登陸的白名單
3)主機域格式:
’10.0.0.51’
’10.0.0.5%’
’10.0.0.%’
’10.0.%.%’
’10.%.%.%’
‘%’
‘db01’
’10.0.0.51/255.255.255.0’
17、請說出下列SQL語句的含義:
1)grant all on . to [email protected]’localhost’ identified by ‘123’;
授權:給user1使用者在本地授權所有庫,所有表,所有許可權,並且密碼是123.
2)grant update,insert,delete on wordpress.* to [email protected]’localhost’ identified by ‘123’;
授權:給user1使用者在本地授權wordpress庫,所有表,修改,插入,刪除許可權,並且密碼是123.
3)grant select(host,user) on mysql.user to [email protected]’10.0.0.5%’identified by ‘123’;
授權:給user1使用者在mysql庫,user表中的host和user欄位,檢視許可權,並且密碼是123.
18、請概述MySQL中的段、區、頁概念?
段: 多個區構成的
區:多個頁構成
頁:mysql中最小單位(16k為一頁)
19、什麼是分割槽表?
一個區構成一個段就是分割槽表。
20、擴充套件題:
1. 建立一個庫(student)
create database student;
2. 在student庫內建立表(stu)
create table stu(id int)
3. 表中欄位
a) id 資料型別 整數
b) name 資料型別 varchar
c) sex資料型別 列舉型別
修改表中欄位
新增欄位(weight 預設值 0)
alter table stu add name varchar(20),add sex enum(‘f’,’m’);
alter table stu modify sex enum(‘f’,’m’,’xingxing’);
alter table stu add weight int default 0;