MySQL初識-架構-安裝-初始化-鏈接-管理工具-數據文件

MySQL架構和結構分析html

官方架構圖mysql

wKioL1NLJNiRnPzbAAn45ZsJsuY067.jpg

內部組件結構圖sql

wKiom1NLJSDxkZwaAALzdV2IEfA203.jpg

MySQL安裝方式shell

wKioL1NLJRjSdsIXAAfglSdvzi8965.jpg


MySQL初始化數據庫

wKiom1NLJV2zwKazAAsmeOpZnBI736.jpg


MySQL工做模式及經常使用命令緩存

交互式模式:mysql>bash

# 交互式模式下的客戶端命令
   mysql> help # 獲取命令幫助
   mysql> \? # 同上
   mysql> \c # 取消命令執行
   mysql> \g # 發送命令至服務器端
   mysql> \G # 發送命令至服務器端,垂直顯示結果
   mysql> \q # 退出
   mysql> \! # 執行系統shell命令
   mysql> \s # 顯示服務器端狀態信息
   mysql> \. /path/to/mysql_script.sql # 批量執行sql
   mysql> \u # 切換數據庫
# 交互式模式下的服務器端命令(須要命令提示符,默認爲分號)
   mysql> help contents 可以獲取幫助的分類信息
   mysql> help keyword 獲取關鍵字的幫助信息,如help select

腳本模式:mysql < /path/to/mysql_script.sql服務器

注:經常使用於主從複製批量導入數據時架構


鏈接MySQLsocket

鏈接類型

本地通訊:客戶端與服務器端位於同一主機,並且還要基於127.0.0.1(localhost)地址或lo接口進行通訊

   基於sock文件通訊:如mysql -hlocalhost -uroot -p --socket=/tmp/mysql.sock

遠程通訊:客戶端與服務器端位於不一樣的主機,或在同一主機使用非迴環地址通訊

   基於 TCP socket通訊

mysql客戶端選項

實例

-u,--user # 指定鏈接用戶
-h,--host # 指定鏈接主機
-p,--password # 指定鏈接密碼
--protocol={tcp|socket|memory|pipe} # 指定鏈接協議
-P,--port # 指定鏈接端口,默認監聽端口:tcp/3306
--socket # 指定本地鏈接的sock文件
--compress # 數據傳輸採用壓縮格式
-D,--database # 指定鏈接後默認使用的數據庫
-H,--html # 指定產生html輸出
-X,--xml # 指定產生xml輸出
--safe-updates # 拒絕使用無where子句的update或delete命令
# 使用實例:mysql -hlocalhost -uroot -p

mysql命令提示符

mysql> # 等待輸入命令
-> # 等待繼續輸入
‘> # 等待結束單引號
「> # 等待結束雙引號
`> # 等待結束反引號
/*> # 註釋,不執行,需以*/結束註釋

mysql的快捷鍵

ctrl+w:# 刪除光標以前的單詞
ctrl+u:# 刪除光標以前至命令行首的全部內容
ctrl+y:# 粘貼全部ctrl+w或ctrl+u刪除的內容
ctrl+a:# 移動光標至行首
ctrl+e:# 移動光標至行尾


MySQL管理工具mysqladmin

# 使用格式:mysqladmin [options] command [arg] [,command [arg]] …
# 經常使用的command包括:
create DB_Name:# 建立數據庫
drop DB_Name:# 刪除數據庫
debug:# 打開調試日誌並記錄於error log中
status:# 顯示簡要狀態信息
--sleep #:設置間隔時長
--count #:設置顯示的批次
extended-status:# 顯示擴展信息,輸出mysqld的各狀態變量及賦值,至關於執行「mysql> show global status」
variables:# 輸出mysqld的各服務器變量
flush-hosts:# 清空主機相關的緩存:DNS解析緩存;此前由於鏈接錯誤次數過多而被拒絕訪問mysqld的主機列表
flush-logs:# 日誌滾動,只能滾動二進制日誌和中繼日誌
refresh:# 至關於同時使用flush-hosts和flush-logs
flush-privileges:# 通知mysqld重讀受權表
reload:# 功能同「flush-privileges」
flush-status:# 重置狀態變量的值
flush-tables:# 關閉當前打開的表文件句柄
flush-threads:# 清空線程緩存
kill:# 殺死指定的線程,需指定線程ID;能夠一次殺死多個線程,以逗號分隔,但不能有多餘空格
password:# 修改當前用戶的密碼
ping:# 模擬ping操做,檢測mysqld是否在線
processlist:# 顯示mysqld線程列表
shutdown:# 關閉mysqld進程
start-slave,stop-slave:# 啓動/關閉從服務器線程


MySQL數據文件解析

MyISAM表:每表有3個文件,都位於數據庫目錄中

tb_name.frm:# 表結構定義文件
tb_name.MYD:# 數據文件
tb_name.MYI:# 索引文件

InnoDB表:有2種存儲方式

默認方式:每表有1個獨立文件和一個多表共享的文件

tb_name.frm:# 表結構定義文件,位於數據庫目錄中
ibdata#:# 共享的表空間文件,默認位於數據目錄(datadir指向的目錄)中,如ibdata1

自定義方式:獨立的表空間

tb_name.frm:#表結構定義文件
tb_name.ibd:# 獨有的表空間文件
# 在MySQL初始化中打開獨立表空間功能的方法:
vi /etc/my.cnf (在[mysqld]段下添加)
innodb_file_per_table = ON
# 注:表空間:table space,是由InnoDB管理的特有格式的數據文件,內部可同時存儲數據和索引


下一篇:MySQL深刻01-SQL語言-數據字典-服務器變量-數據操做DML-視圖

相關文章
相關標籤/搜索