1. 程式人生 > 其它 >MySQL資料目錄下檔案說明

MySQL資料目錄下檔案說明

一、關於MySQL資料檔案

MySQL檔案包括MySQL所建資料庫檔案和MySQL所用引擎建立的資料庫檔案。

在MYSQL中建立任何一張資料表,在其資料目錄對應的資料庫目錄下都有對應表的.frm檔案,.frm檔案是用來儲存每個資料表的元資料(meta)資訊,包括表結構的定義等,.frm檔案跟資料庫儲存引擎無關,也就是任何儲存引擎的資料表都必須有.frm檔案,命名方式為資料表名.frm,如user.frm. .frm檔案可以用來在資料庫崩潰時恢復表結構。

MySQL的儲存引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事務安全表,其他儲存引擎都是非事務安全表。

mysql安裝教程

最常使用的2種儲存引擎:

1.Myisam是Mysql的預設儲存引擎,當create建立新表時,未指定新表的儲存引擎時,預設使用Myisam。每個MyISAM在磁碟上儲存成三個檔案。檔名都和表名相同,副檔名分別是.frm(儲存表定義)、.MYD(MYData,儲存資料)、.MYI(MYIndex,儲存索引)。資料檔案和索引檔案可以放置在不同的目錄,平均分佈IO,獲得更快的速度。

2.InnoDB儲存引擎提供了具有提交、回滾和崩潰恢復能力的事務安全。但是對比Myisam的儲存引擎,InnoDB寫的處理效率差一些並且會佔用更多的磁碟空間以保留資料和索引。

MySQL體系結構

https://www.cnblogs.com/wy123/category/1243550.html

二、MySQL狀態

# systemctl status mysqld

# mysql -u root -p"MySQL@123" -e "show databases;"

# mysql -u root -p"MySQL@123" -e "show variables like '%storage_engine%';"

# mysql -u root -p"MySQL@123" -e "show variables like 'innodb%pool%';"

三、資料目錄檔案

# ls -l /var/lib/mysql

# ls -l /var/lib/mysql/mysql

auto.cnf 記錄mysql資料庫例項的server_uuid,安裝的時候初始化,master和slave的server_uuid不能一樣

ib_buffer_pool 快取池,存放部分最近的查詢記錄和索引等,可以通過show variables like 'innodb%pool%'查

ibdata1 innodb表空間,如果採用innodb引擎,會預設10M大小

ib_logfile0 事務日誌檔案,是確保事務的REDO和UNDO,主要是確保事務的前滾和後滾,不是用來恢復用

ib_logfile1 事務日誌檔案,是確保事務的REDO和UNDO,不是用來恢復用

ibtmp1 臨時表空間

mysql 系統資料庫目錄

performance_schema 系統資料庫目錄

sys 系統資料庫目錄

bogon-bin.000001 二進位制日誌檔案,用於恢復,主從資料同步等

bogon-bin.000002 二進位制日誌檔案,用於恢復,主從資料同步等

bogon-bin.index 二進位制日誌檔案索引,用於恢復,主從資料同步等

mysql.sock MySQL socket檔案

mysql.sock.lock MySQL socket鎖檔案

MySQL的資料庫其相關檔案都會存放在安裝目錄下data資料夾下的同命資料夾中,不同的儲存引擎建立的表其檔案也不一樣,下面來認識下這些資料庫檔案。

四、MySQL資料庫的證書檔案

MySQL5.7.x 啟動後,預設會在data(資料)目錄下生成以下pem檔案,這些檔案就是用於啟用SSL功能的。

這些檔案是證書頒發機構(以“ca”開頭),MySQL伺服器程序(以“伺服器”開頭)和MySQL客戶端(以“客戶端”開頭)的金鑰和證書對。 此外,當不使用SSL時,MySQL使用private_key.pem和public_key.pem檔案來安全地傳輸密碼。

# ll /var/lib/mysql/*.pem

# mysql -u root -p"MySQL@123" -e "show global variables like '%ssl%';"

# mysql -u root -h 192.168.1.104 -p"MySQL@123"

mysql> \s

# mysql -u root -p"MySQL@123"

mysql> \s

五、參考

MySQL初始化root密碼和允許遠端訪問

https://www.cnblogs.com/cnblogsfans/archive/2009/09/21/1570942.html

MySQL 資料檔案目錄檔案型別介紹

https://blog.51cto.com/11025159/1874729

你的MySQL伺服器開啟SSL了嗎?

https://www.cnblogs.com/mysql-dba/p/7061300.html

如何檢視MySQL的當前儲存引擎?

https://www.cnblogs.com/zhming26/p/6322353.html

MySQL 開啟SSL連線

https://blog.csdn.net/weixin_39845407/article/details/81708230

MySQL僅從.frm和.ibd檔案恢復資料

https://blog.csdn.net/zhchs2012/article/details/79013951

SSL Connections in MySQL 5.7

https://www.percona.com/blog/2017/06/27/ssl-connections-in-mysql-5-7

How To Configure SSL/TLS for MySQL on Ubuntu 16.04

https://www.digitalocean.com/community/tutorials/how-to-configure-ssl-tls-for-mysql-on-ubuntu-16-04

MySQL5.7 Connecting Securely Using SSL

https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-using-ssl.html

MySQL 5.7.x 中文文件

https://www.docs4dev.com/docs/zh/mysql/5.7/reference/preface.html#前言和法律宣告