今日內(nèi)容:
1.MySQL體系結(jié)構(gòu)簡單介紹 理解
2.連接管理 理解
3.配置管理? 理解
4.用戶管理? 掌握
5.權(quán)限管理? 理解
第1章 MySQL體系結(jié)構(gòu)簡單介紹
1.MySQL C/S結(jié)構(gòu) Clinet/Server
Clinet:
mysql命令
圖形化工具
代碼程序的mysql驅(qū)動(dòng)
連接方式:
本地的socket文件直連
遠(yuǎn)程的IP+Port
2.mysqld核心程序工作原理
連接層:
- 接受用戶連接請求
- 驗(yàn)證賬號密碼
- 連接線程
SQL處理層:
處理用戶的SQL語句
數(shù)據(jù)處理層:
將SQL層執(zhí)行的結(jié)果落地到磁盤上
第2章 MySQL啟動(dòng)關(guān)閉原理
1.myslqd_safe和mysqld
mysqld_safe作用:
1).官方提供的啟動(dòng)腳本最終會(huì)調(diào)用mysqld_safe命令腳本,然后mysqld_safe腳本又會(huì)調(diào)用mysqld主程序啟動(dòng)MySQL服務(wù)床三。
2).最終都是由mysqld啟動(dòng)浩蓉,mysqld_safe可以看做是mysqld的守護(hù)進(jìn)程友雳。
3).mysqld_safe會(huì)啟動(dòng)并監(jiān)視mysqld,如果mysqld發(fā)生意外錯(cuò)誤可以重啟服務(wù)。
4).mysqld_safe啟動(dòng)可以將mysqld的錯(cuò)誤消息發(fā)送到數(shù)據(jù)目錄中的host_name.err文件
5).可以讀取的配置部分[mysqld],[server],[myslqd_safe], 為了兼容mysql_safe也會(huì)讀取[safe_mysqld]中的配置
6).調(diào)用的mysqld是可以在[mysqld_safe]中用-mysqld, --mysqld-version指定
mysqld作用:
1).mysqld是mysql的核心程序,用于管理mysql的數(shù)據(jù)庫文件以及用戶的請求操作。
2).mysqld可以讀取配置文件中的[mysqld]的部分
2.myslqd_safe和mysqld的應(yīng)用場景
正常情況:
myslqd_safe
排錯(cuò)的時(shí)候:
如果啟動(dòng)失敗并且不打日志,那么直接使用mysqld --defaults-file=/etc/my.cnf啟動(dòng),此時(shí)會(huì)將報(bào)錯(cuò)打印到屏幕上
3.關(guān)閉myslq的正確姿勢
腳本關(guān)閉:
/etc/init.d/mysqld stop
systemctl stop mysqld
命令關(guān)閉:
mysql -uroot -p123 -e "shutdown;"
kill系列:
kill pid
pkill mysql
killall mysql
如果使用shutdown關(guān)閉數(shù)據(jù)庫后妹笆,使用systemctl status mysqld查看狀態(tài),就會(huì)發(fā)現(xiàn)mysql還是啟動(dòng)狀態(tài)娜氏,但是使用ps -ef |grep mysqld沒有啟動(dòng)成功
也找不到3306端口號
第3章 MySQL配置管理
1.mysqld默認(rèn)支持讀取的配置文件路徑
mysqld --help --verbose |grep my.cnf
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/mysql/etc/my.cnf
~/.my.cnf
2.默認(rèn)配置優(yōu)先級
? 1 /etc/my.cnf
? 2 /etc/mysql/my.cnf
? 3 /usr/local/mysql/etc/my.cnf
? 4 ~/.my.cnf
3.優(yōu)先級之間的關(guān)系
如果多個(gè)配置文件參數(shù)一樣,那么都一樣
如果多個(gè)配置文件參數(shù)不一樣,以最后讀到的配置為準(zhǔn)
如果前面的有,后面的沒有,前面的也會(huì)讀取生效