在MySQL中建立的庫實(shí)際上是被存儲(chǔ)在硬盤或其他存儲(chǔ)設(shè)備中的。MySQL并沒有把整個(gè)庫放在內(nèi)存中,因此,它需要尋找一個(gè)地方來存儲(chǔ)庫,以便在需要時(shí)可以訪問和使用。在這里,我們將詳細(xì)介紹MySQL庫存儲(chǔ)在哪里。
首先,MySQL使用數(shù)據(jù)目錄來存儲(chǔ)數(shù)據(jù)庫。您可以通過配置文件my.cnf或my.ini中的datadir參數(shù)更改數(shù)據(jù)目錄的位置。一旦設(shè)置了數(shù)據(jù)目錄,MySQL會(huì)在該目錄中為每個(gè)數(shù)據(jù)庫創(chuàng)建一個(gè)獨(dú)立的子目錄。這個(gè)子目錄的名字就是數(shù)據(jù)庫的名字。
在每個(gè)數(shù)據(jù)庫的子目錄中,MySQL會(huì)為其表創(chuàng)建一個(gè)或多個(gè)文件。這些文件包括:.frm文件,它存儲(chǔ)表的結(jié)構(gòu);.MYD文件,它存儲(chǔ)表的數(shù)據(jù);.MYI文件,它存儲(chǔ)表的索引。如果表使用了InnoDB存儲(chǔ)引擎,那么它將使用.ibd文件存儲(chǔ)數(shù)據(jù)和索引。
此外,MySQL還會(huì)在數(shù)據(jù)目錄中創(chuàng)建一些其他文件。這些文件包括:.err文件,它存儲(chǔ)MySQL服務(wù)器的錯(cuò)誤和警告消息;.pid文件,它存儲(chǔ)MySQL服務(wù)器的進(jìn)程ID;和.sock文件,它是用于與服務(wù)器通信的套接字。
最后要注意的一點(diǎn)是,MySQL庫的存儲(chǔ)位置取決于您所使用的操作系統(tǒng)。例如,在Windows操作系統(tǒng)中,數(shù)據(jù)目錄的默認(rèn)位置是C:\Program Files\MySQL\MySQL Server 8.0\data,而在Linux操作系統(tǒng)中則是/var/lib/mysql。
示例代碼: [mysqld] datadir=C:/Program Files/MySQL/MySQL Server 8.0/data
綜上所述,MySQL庫是存儲(chǔ)在文件系統(tǒng)中的。在MySQL中建立的數(shù)據(jù)庫被存儲(chǔ)在特定的數(shù)據(jù)目錄中,該目錄包含每個(gè)數(shù)據(jù)庫的獨(dú)立子目錄。在每個(gè)數(shù)據(jù)庫的子目錄中,MySQL會(huì)為其表創(chuàng)建文件來存儲(chǔ)表的結(jié)構(gòu)、數(shù)據(jù)和索引。要注意操作系統(tǒng)對(duì)數(shù)據(jù)目錄的默認(rèn)位置,如果需要更改數(shù)據(jù)目錄的位置,可以通過配置文件修改datadir參數(shù)。