MySQL 數(shù)據(jù)目錄
1. MySQL8的主要目錄結(jié)構(gòu)
find / -name mysql
安裝好MySQL 8之后,我們查看如下的目錄結(jié)構(gòu):
[圖片上傳失敗...(image-938026-1713883000041)]
1. 數(shù)據(jù)庫文件的存放路徑
MySQL數(shù)據(jù)庫文件的存放路徑:/var/lib/mysql/
MySQL服務(wù)器程序在啟動時會到文件系統(tǒng)的某個目錄下加載一些文件,之后在運行過程中產(chǎn)生的數(shù)據(jù)也都會存儲到這個目錄下的某些文件中突想,這個目錄就稱為數(shù)據(jù)目錄艇搀。
MySQL把數(shù)據(jù)都存到哪個路徑下呢猎荠?其實數(shù)據(jù)目錄對應(yīng)著一個系統(tǒng)變量datadir摹恰,我們在使用客戶端與服務(wù)器建立連接之后查看這個系統(tǒng)變量的值就可以了。
show variables like 'datadir';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| datadir | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.04 sec)
從結(jié)果中可以看出,當(dāng)前MySQL的數(shù)據(jù)目錄就是 /var/lib/mysql/ 。
2. 相關(guān)命令目錄
相關(guān)命令目錄:/usr/bin(mysqladmin芳杏、mysqlbinlog、mysqldump等命令)和/usr/sbin烛愧。
[圖片上傳失敗...(image-1bdbb-1713883000041)]
安裝目錄下非常重要的bin目錄音念,它里面存儲了許多關(guān)于控制客戶端程序和服務(wù)器程序的命令(許多可執(zhí)行文件,比如:mysql际跪、mysqld商佛、mysql_safe等)喉钢。而數(shù)據(jù)目錄是用來存儲MySQL在運行過程中產(chǎn)生的數(shù)據(jù),注意區(qū)分開二者威彰。
3. 配置文件目錄
配置文件目錄:/usr/share/mysql-8.0(命令及配置文件)出牧,/etc/my.cnf
[圖片上傳失敗...(image-3ea2b7-1713883000041)]
2. 數(shù)據(jù)庫和文件系統(tǒng)的關(guān)系
像 InnoDB、MyISAM 這樣的存儲引擎都是把表存儲在磁盤上的歇盼,操作系統(tǒng)用來管理的結(jié)構(gòu)稱為文件系統(tǒng)舔痕,所以用專業(yè)一點的話來表述就是:像 InnoDB、MyISAM 這樣的存儲引擎都是把表存儲在文件系統(tǒng)上的豹缀。當(dāng)我們想讀取數(shù)據(jù)的時候伯复,這些存儲引擎會從文件系統(tǒng)中把數(shù)據(jù)讀出來返回給我們,當(dāng)我們想寫入數(shù)據(jù)的時候邢笙,這些存儲引擎會把這些數(shù)據(jù)又寫回文件系統(tǒng)啸如。
1. 查看默認(rèn)數(shù)據(jù)庫
查看一下當(dāng)前有哪些數(shù)據(jù)庫:
SHOW DATABASES;
可以看到有4個數(shù)據(jù)庫是屬于MySQL自帶的系統(tǒng)數(shù)據(jù)庫。
-
mysql
MySQL 系統(tǒng)自帶的核心數(shù)據(jù)庫氮惯,它存儲了MySQL的用戶賬戶和權(quán)限信息叮雳,一些存儲過程、事件的定義信息妇汗,一些運行過程中產(chǎn)生的日志信息帘不,一些幫助信息以及時區(qū)信息等。
-
information_schema
MySQL 系統(tǒng)自帶的數(shù)據(jù)庫杨箭,這個數(shù)據(jù)庫保存著MySQL服務(wù)器 維護(hù)的所有其他數(shù)據(jù)庫的信息 寞焙,比如有哪些表、哪些視圖互婿、哪些觸發(fā)器捣郊、哪些列、哪些索引慈参。這些信息并不是真實的用戶數(shù)據(jù)呛牲,而是一些描述性信息,有時候也稱之為 元數(shù)據(jù) 懂牧。在系統(tǒng)數(shù)據(jù)庫 information_schema 中提供了一些以innodb_sys 開頭的表侈净,用于表示內(nèi)部系統(tǒng)表。
USE information_schema; Database changed mysql> SHOW TABLES LIKE 'innodb_sys%'; +--------------------------------------------+ | Tables_in_information_schema (innodb_sys%) | +--------------------------------------------+ | INNODB_SYS_DATAFILES | | INNODB_SYS_VIRTUAL | | INNODB_SYS_INDEXES | | INNODB_SYS_TABLES | | INNODB_SYS_FIELDS | | INNODB_SYS_TABLESPACES | | INNODB_SYS_FOREIGN_COLS | | INNODB_SYS_COLUMNS | | INNODB_SYS_FOREIGN | | INNODB_SYS_TABLESTATS | +--------------------------------------------+ 10 rows in set (0.00 sec)
-
performance_schema
MySQL 系統(tǒng)自帶的數(shù)據(jù)庫僧凤,這個數(shù)據(jù)庫里主要保存MySQL服務(wù)器運行過程中的一些狀態(tài)信息畜侦,可以用來 監(jiān)控 MySQL 服務(wù)的各類性能指標(biāo) 。包括統(tǒng)計最近執(zhí)行了哪些語句躯保,在執(zhí)行過程的每個階段都花費了多長時間旋膳,內(nèi)存的使用情況等信息。
-
sys
MySQL 系統(tǒng)自帶的數(shù)據(jù)庫途事,這個數(shù)據(jù)庫主要是通過 視圖 的形式把 information_schema 和 performance_schema 結(jié)合起來验懊,幫助系統(tǒng)管理員和開發(fā)人員監(jiān)控 MySQL 的技術(shù)性能擅羞。
2. 數(shù)據(jù)庫在文件系統(tǒng)中的表示
使用 CREATE DATABASE 數(shù)據(jù)庫名 語句創(chuàng)建一個數(shù)據(jù)庫的時候,在文件系統(tǒng)上實際發(fā)生了什么呢义图?其實很簡單减俏,每個數(shù)據(jù)庫都對應(yīng)數(shù)據(jù)目錄下的一個子目錄,或者說對應(yīng)一個文件夾碱工,每當(dāng)創(chuàng)建一個數(shù)據(jù)庫時娃承,MySQL會幫我們做這兩件事:
在數(shù)據(jù)目錄下創(chuàng)建一個和數(shù)據(jù)庫同名的子目錄。
-
在與該數(shù)據(jù)庫同名的子目錄下創(chuàng)建一個名為db.opt的文件(僅限MySQL5.7及之前的版本)怕篷,這個文件中包含了該數(shù)據(jù)庫的各種屬性历筝,比如該數(shù)據(jù)庫的字符集和比較規(guī)則。
# MySQL5.7 [root@onnoamysql57 dbtest1]# pwd /var/lib/mysql/dbtest1 [root@onnoamysql57 dbtest1]# ll 總用量 132 -rw-r-----. 1 mysql mysql 61 4月 22 11:45 db.opt -rw-r-----. 1 mysql mysql 8588 4月 22 11:46 emp.frm -rw-r-----. 1 mysql mysql 98304 4月 23 20:34 emp.ibd -rw-r-----. 1 mysql mysql 469 4月 23 20:34 emp_view.frm -rw-r-----. 1 mysql mysql 8642 4月 23 20:11 student_myisam.frm -rw-r-----. 1 mysql mysql 0 4月 23 20:11 student_myisam.MYD -rw-r-----. 1 mysql mysql 1024 4月 23 20:11 student_myisam.MYI
MySQL的數(shù)據(jù)目錄下的內(nèi)容:
cd /var/lib/mysql
ll
[root@onnoamysql8 ~]# cd /var/lib/mysql
[root@onnoamysql8 mysql]# ll
總用量 188888
-rw-r-----. 1 mysql mysql 56 4月 21 23:49 auto.cnf
-rw-r-----. 1 mysql mysql 499 4月 22 00:04 binlog.000001
-rw-r-----. 1 mysql mysql 1136 4月 23 00:40 binlog.000002
-rw-r-----. 1 mysql mysql 756 4月 23 19:46 binlog.000003
-rw-r-----. 1 mysql mysql 48 4月 23 12:19 binlog.index
-rw-------. 1 mysql mysql 1680 4月 21 23:49 ca-key.pem
-rw-r--r--. 1 mysql mysql 1112 4月 21 23:49 ca.pem
-rw-r--r--. 1 mysql mysql 1112 4月 21 23:49 client-cert.pem
-rw-------. 1 mysql mysql 1680 4月 21 23:49 client-key.pem
drwxr-x---. 2 mysql mysql 4096 4月 23 19:47 dbtest1
drwxr-x---. 2 mysql mysql 4096 4月 23 19:45 dbtest2
-rw-r-----. 1 mysql mysql 196608 4月 23 19:48 #ib_16384_0.dblwr
-rw-r-----. 1 mysql mysql 8585216 4月 21 23:49 #ib_16384_1.dblwr
-rw-r-----. 1 mysql mysql 3534 4月 23 00:40 ib_buffer_pool
-rw-r-----. 1 mysql mysql 12582912 4月 23 19:46 ibdata1
-rw-r-----. 1 mysql mysql 50331648 4月 23 19:48 ib_logfile0
-rw-r-----. 1 mysql mysql 50331648 4月 21 23:49 ib_logfile1
-rw-r-----. 1 mysql mysql 12582912 4月 23 12:19 ibtmp1
drwxr-x---. 2 mysql mysql 4096 4月 23 12:19 #innodb_temp
drwxr-x---. 2 mysql mysql 4096 4月 21 23:49 mysql
-rw-r-----. 1 mysql mysql 25165824 4月 23 19:46 mysql.ibd
srwxrwxrwx. 1 mysql mysql 0 4月 23 12:19 mysql.sock
-rw-------. 1 mysql mysql 5 4月 23 12:19 mysql.sock.lock
drwxr-x---. 2 mysql mysql 4096 4月 21 23:49 performance_schema
-rw-------. 1 mysql mysql 1680 4月 21 23:49 private_key.pem
-rw-r--r--. 1 mysql mysql 452 4月 21 23:49 public_key.pem
-rw-r--r--. 1 mysql mysql 1112 4月 21 23:49 server-cert.pem
-rw-------. 1 mysql mysql 1676 4月 21 23:49 server-key.pem
drwxr-x---. 2 mysql mysql 4096 4月 21 23:49 sys
-rw-r-----. 1 mysql mysql 16777216 4月 23 19:48 undo_001
-rw-r-----. 1 mysql mysql 16777216 4月 23 19:46 undo_002
這個數(shù)據(jù)目錄下的文件和子目錄比較多廊谓,除了 information_schema 這個系統(tǒng)數(shù)據(jù)庫外梳猪,其他的數(shù)據(jù)庫在 數(shù)據(jù)目錄 下都有對應(yīng)的子目錄。
以我的 dbtest1 數(shù)據(jù)庫為例蒸痹,在MySQL5.7中打開:
cd ./dbtest1
ll
[root@onnoamysql57 mysql]# cd ./dbtest1
[root@onnoamysql57 dbtest1]# ll
總用量 112
-rw-r-----. 1 mysql mysql 61 4月 22 11:45 db.opt
-rw-r-----. 1 mysql mysql 8588 4月 22 11:46 emp.frm
-rw-r-----. 1 mysql mysql 98304 4月 22 11:47 emp.ibd
在MySQL8.0中打開:
cd ./dbtest1
ll
[root@onnoamysql8 mysql]# cd dbtest1
[root@onnoamysql8 dbtest1]# ll
總用量 92
-rw-r-----. 1 mysql mysql 114688 4月 23 19:46 emp.ibd
-rw-------. 1 root root 11107 4月 23 19:47 emp.txt
3. 表在文件系統(tǒng)中的表示
我們的數(shù)據(jù)其實都是以記錄的形式插入到表中的春弥,每個表的信息其實可以分為兩種:
- 表的結(jié)構(gòu)定義
- 表中的數(shù)據(jù)
表結(jié)構(gòu)就是該表的名稱,表里邊又多少列叠荠,每個列的數(shù)據(jù)類型惕稻,約束條件和索引,使用的字符集和比較規(guī)則等各種信息蝙叛,這些信息都體現(xiàn)在我們的見表語句中了。
1. InnoDB存儲引擎模式
1. 表結(jié)構(gòu)
為了保存表結(jié)構(gòu)公给, InnoDB 在 數(shù)據(jù)目錄 下對應(yīng)的數(shù)據(jù)庫子目錄下創(chuàng)建了一個專門用于 描述表結(jié)構(gòu)的文件 借帘,文件名是這樣:
表名.frm
比方說我們在 atguigu 數(shù)據(jù)庫下創(chuàng)建一個名為 test 的表:
mysql> USE atguigu;
Database changed
mysql> CREATE TABLE test (
c1 INT
);
Query OK, 0 rows affected (0.03 sec)
那在數(shù)據(jù)庫 atguigu 對應(yīng)的子目錄下就會創(chuàng)建一個名為 test.frm 的用于描述表結(jié)構(gòu)的文件。.frm文件的格式在不同的平臺上都是相同的淌铐。這個后綴名為.frm是以 二進(jìn)制格式 存儲的肺然,我們直接打開是亂碼的。
2. 表中數(shù)據(jù)和索引
① 系統(tǒng)表空間(system tablespace)
默認(rèn)情況下腿准,InnoDB會在數(shù)據(jù)目錄下創(chuàng)建一個名為 ibdata1 际起、大小為 12M 的文件,這個文件就是對應(yīng)的 系統(tǒng)表空間 在文件系統(tǒng)上的表示吐葱。怎么才12M街望?注意這個文件是 自擴(kuò)展文件 ,當(dāng)不夠用的時候它會自己增加文件大小弟跑。
當(dāng)然灾前,如果你想讓系統(tǒng)表空間對應(yīng)文件系統(tǒng)上多個實際文件,或者僅僅覺得原來的 ibdata1 這個文件名難聽孟辑,那可以在MySQL啟動時配置對應(yīng)的文件路徑以及它們的大小哎甲,比如我們這樣修改一下my.cnf 配置文件:
[server]
innodb_data_file_path=data1:512M;data2:512M:autoextend
② 獨立表空間(file-per-table tablespace)
在MySQL5.6.6以及之后的版本中蔫敲,InnoDB并不會默認(rèn)的把各個表的數(shù)據(jù)存儲到系統(tǒng)表空間中,而是為 每一個表建立一個獨立表空間 炭玫,也就是說我們創(chuàng)建了多少個表奈嘿,就有多少個獨立表空間。使用 獨立表空間 來存儲表數(shù)據(jù)的話吞加,會在該表所屬數(shù)據(jù)庫對應(yīng)的子目錄下創(chuàng)建一個表示該獨立表空間的文件裙犹,文件名和表名相同,只不過添加了一個 .ibd 的擴(kuò)展名而已榴鼎,所以完整的文件名稱長這樣:
表名.ibd
比如:我們使用了 獨立表空間 去存儲 atguigu 數(shù)據(jù)庫下的 test 表的話伯诬,那么在該表所在數(shù)據(jù)庫對應(yīng)的 atguigu 目錄下會為 test 表創(chuàng)建這兩個文件:
test.frm
test.ibd
其中 test.ibd 文件就用來存儲 test 表中的數(shù)據(jù)和索引。
③ 系統(tǒng)表空間與獨立表空間的設(shè)置
我們可以自己指定使用 系統(tǒng)表空間 還是 獨立表空間 來存儲數(shù)據(jù)巫财,這個功能由啟動參數(shù)innodb_file_per_table 控制盗似,比如說我們想刻意將表數(shù)據(jù)都存儲到 系統(tǒng)表空間 時,可以在啟動MySQL服務(wù)器的時候這樣配置:
[server]
innodb_file_per_table=0 # 0:代表使用系統(tǒng)表空間平项; 1:代表使用獨立表空間
默認(rèn)情況:
mysql> show variables like 'innodb_file_per_table';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_file_per_table | ON |
+-----------------------+-------+
1 row in set (0.01 sec)
說明:innodb_file_per_table 參數(shù)的修改只對新建的表起作用赫舒,對于已經(jīng)分配了表空間的表并不起作用。如果我們想把已經(jīng)存在系統(tǒng)表空間中的表轉(zhuǎn)移到獨立表空間闽瓢,可以使用下邊的語法:
ALTER TABLE 表名 TABLESPACE [=] innodb_file_per_table接癌;
或者把已經(jīng)存在獨立表空間的表轉(zhuǎn)移到系統(tǒng)表空間,可以使用下邊的語法:
ALTER TABLE 表名 TABLESPACE [=] innodb_system;
其中中括號括起來的=可有可無扣讼,比如:我們想把test表從獨立表空間移動到系統(tǒng)表空間缺猛,可以這么寫:
ALTER TABLE test TABLESPACE innodb_system;
④ 其他類型的表空間
隨著MySQL的發(fā)展,除了上述兩種老牌表空間之外椭符,現(xiàn)在還新提出了一些不同類型的表空間荔燎,比如通用表空間(general tablespace)、臨時表空間(temporary tablespace)等销钝。
3. 疑問
.frm在MySQL8中不存在了有咨。那去哪里了呢?
這就需要解析ibd文件蒸健。Oracle官方將frm文件的信息及更多信息移動到叫做序列化字典信息(Serialized Dictionary Information座享,SDI),SDI 被寫在ibd文件內(nèi)部。MySQL8.0屬于Oracle旗下似忧,同理渣叛。
為了從IBD文件中提取SDI信息,Oracle提供了一個應(yīng)用程序ibd2sdi盯捌。
=== ibd2sdi官方文檔 ===
這個工具不需要下載诗箍,MySQL8自帶有,只要你配好環(huán)境變量就能使用。
(1) 查看表結(jié)構(gòu)
到存儲ibd文件的目錄下滤祖,執(zhí)行下面的命令:
ibd2sdi --dump-file=emp.txt emp.ibd
結(jié)果如下所示:
[圖片上傳失敗...(image-d93f2b-1713883000041)]
這樣ibd2sdi就會把 .ibd 里面存儲的表結(jié)構(gòu)以json 的格式保存到 emp.txt 中筷狼。
[圖片上傳失敗...(image-1c3e4a-1713883000041)]
圖中標(biāo)記部分從上到下分別表示
- 表名
- 列
- 列名
- 列的長度
通過上面的測試結(jié)果可以發(fā)現(xiàn),MySQL8把之前版本的frm文件合并到ibd文件中了匠童。
2. MyISAM存儲引擎模式
1. 表結(jié)構(gòu)
在存儲表結(jié)構(gòu)方面埂材, MyISAM 和 InnoDB 一樣,也是在 數(shù)據(jù)目錄 下對應(yīng)的數(shù)據(jù)庫子目錄下創(chuàng)建了一個專門用于描述表結(jié)構(gòu)的文件:
表名.frm
2. 表中數(shù)據(jù)和索引
在MyISAM中的索引全部都是 二級索引 汤求,該存儲引擎的 數(shù)據(jù)和索引是分開存放 的俏险。所以在文件系統(tǒng)中也是使用不同的文件來存儲數(shù)據(jù)文件和索引文件,同時表數(shù)據(jù)都存放在對應(yīng)的數(shù)據(jù)庫子目錄下扬绪。假如 test表使用MyISAM存儲引擎的話竖独,那么在它所在數(shù)據(jù)庫對應(yīng)的 atguigu 目錄下會為 test 表創(chuàng)建這三個文件:
test.frm 存儲表結(jié)構(gòu)
test.MYD 存儲數(shù)據(jù) (MYData)
test.MYI 存儲索引 (MYIndex)
其中 test.MYD 代表表的數(shù)據(jù)文件挤牛,也就是我們插入的用戶記錄莹痢。采用獨立表存儲模式,每個表對應(yīng)一個MYD文件墓赴;test.MYI 代表表的索引文件竞膳,我們?yōu)樵摫韯?chuàng)建的索引都會放到這個文件中。
舉例:創(chuàng)建一個 MyISAM 表诫硕,使用 ENGINE 選項顯式指定引擎坦辟。因為 InnoDB 是默認(rèn)引擎。
CREATE TABLE `student_myisam` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(64) DEFAULT NULL,
`age` int DEFAULT NULL,
`sex` varchar(2) DEFAULT NULL,
PRIMARY KEY (`id`)
)ENGINE=MYISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb3;
MySQL8版本中
-
進(jìn)入數(shù)據(jù)庫目錄[圖片上傳失敗...(image-d91956-1713883000041)]
包含三個文件:
student_myisam_361.sdi -- 存儲元數(shù)據(jù)(MyISAM表的數(shù)據(jù)文件(
.MYD
文件)的備份文件章办,是以文本形式保存的锉走。嘗試刪除不影響)
student_myisam.MYD -- 存儲數(shù)據(jù)
student_myisam.MYI -- 存儲索引對于 InnoDB 表,SDI 與 InnoDB 用戶表空間中的數(shù)據(jù)一起存儲藕届。對于 MyISAM 和其他存儲引擎挠日,它被寫入數(shù)據(jù)目錄中的 .sdi 文件。
在MySQL8.0中翰舌,MyISAM 存儲引擎不提供分區(qū)支持。在以前版本的MySQL中創(chuàng)建的分區(qū) MyISAM 表不能再MySQL8.0 中使用冬骚。
MySQL5.7版本中
-
查看文件目錄椅贱,如下:
[圖片上傳失敗...(image-5a6217-1713883000041)]
包含三個文件:
student_myisam.frm -- 存儲表結(jié)構(gòu)
student_myisam.MYD -- 存儲數(shù)據(jù)
student_myisam.MYI -- 存儲索引可以發(fā)現(xiàn),在之前的數(shù)據(jù)庫版本中只冻,MyISAM 引擎已存在 frm 文件庇麦,但是在MySQL8之后也和innoDB引擎一樣去掉了,放在了sdi文件中喜德。
4. 小結(jié)
舉例: 數(shù)據(jù)庫a 山橄, 表b 。
1舍悯、如果表b采用 InnoDB 航棱,data\a中會產(chǎn)生1個或者2個文件:
- b.frm :描述表結(jié)構(gòu)文件,字段長度等
- 如果采用 系統(tǒng)表空間 模式的饮醇,數(shù)據(jù)信息和索引信息都存儲在 ibdata1 中
- 如果采用 獨立表空間 存儲模式观蓄,data\a中還會產(chǎn)生 b.ibd 文件(存儲數(shù)據(jù)信息和索引信息)
此外:
① MySQL5.7 中會在data/a的目錄下生成 db.opt 文件用于保存數(shù)據(jù)庫的相關(guān)配置侮穿。比如:字符集亲茅、比較規(guī)則芯急。而MySQL8.0不再提供db.opt文件娶耍。
② MySQL8.0中不再單獨提供b.frm榕酒,而是合并在b.ibd文件中想鹰。
2辑舷、如果表b采用 MyISAM 何缓,data\a中會產(chǎn)生3個文件:
-
MySQL5.7 中: b.frm :描述表結(jié)構(gòu)文件,字段長度等谷婆。
MySQL8.0 中 b.xxx.sdi :描述表結(jié)構(gòu)文件纪挎,字段長度等
b.MYD (MYData):數(shù)據(jù)信息文件廷区,存儲數(shù)據(jù)信息(如果采用獨立表存儲模式)
b.MYI (MYIndex):存放索引信息文件
5. 視圖在文件系統(tǒng)中的表示
我們知道MySQL中的視圖其實就是虛擬的表埠帕,也就是某個查詢語句的一個別名而已敛瓷,所以在存儲視圖的時候是不需要存儲真實的數(shù)據(jù)呐籽,只需要把它的結(jié)構(gòu)存儲起來就行了。和表一樣贪惹,描述視圖結(jié)構(gòu)的文件也會被存儲到所屬數(shù)據(jù)庫對應(yīng)的子目錄下奏瞬,只會存儲一個視圖名.frm的文件硼端。如下: emp_view.frm(MySQL8 下沒有該文件 - 暫時不知道MySQL8 的視圖文件存儲在哪)
-
MySQL5.7
[root@onnoamysql57 ~]# cd /var/lib/mysql [root@onnoamysql57 mysql]# cd dbtest1 [root@onnoamysql57 dbtest1]# ll 總用量 132 -rw-r-----. 1 mysql mysql 61 4月 22 11:45 db.opt -rw-r-----. 1 mysql mysql 8588 4月 22 11:46 emp.frm -rw-r-----. 1 mysql mysql 98304 4月 23 20:34 emp.ibd -rw-r-----. 1 mysql mysql 469 4月 23 20:34 emp_view.frm -rw-r-----. 1 mysql mysql 8642 4月 23 20:11 student_myisam.frm -rw-r-----. 1 mysql mysql 0 4月 23 20:11 student_myisam.MYD -rw-r-----. 1 mysql mysql 1024 4月 23 20:11 student_myisam.MYI [root@onnoamysql57 dbtest1]# pwd /var/lib/mysql/dbtest1
-
MySQL8
[圖片上傳失敗...(image-3ca995-1713883000041)]
6. 其他的文件
除了我們上邊說的這些用戶自己存儲的數(shù)據(jù)以外珍昨,數(shù)據(jù)目錄下還包括為了更好運行程序的一些額外文件,主要包括這幾種類型的文件:
-
服務(wù)器進(jìn)程文件
我們知道每運行一個MySQL服務(wù)器程序,都意味著啟動一個進(jìn)程父叙。MySQL服務(wù)器會把自己的進(jìn)程ID寫入到一個文件中涌乳。
-
服務(wù)器日志文件
在服務(wù)器運行過程中甜癞,會產(chǎn)生各種各樣的日志蒸辆,比如常規(guī)的查詢?nèi)罩竟薄㈠e誤日志拂玻、二進(jìn)制日志、redo日志等沿侈。這些日志各有各的用途乡括。
-
默認(rèn)/自動生成的SSL和RSA證書和密鑰文件
主要是為了客戶端和服務(wù)器安全通信而創(chuàng)建的一些文件。