1. 程式人生 > >Mysql入門二十小題(DBA老司機帶你刪庫到跑路)2018.11.26

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資料型別 列舉型別

  1. 修改表中欄位

  2. 新增欄位(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;