軟考數(shù)據(jù)庫資料:MySQL數(shù)據(jù)目錄結(jié)構(gòu)

字號:

從概念上講,大多
    數(shù)關(guān)系數(shù)據(jù)庫系統(tǒng)是相似的:它們有一系列數(shù)據(jù)庫組成,每個數(shù)據(jù)庫包含一系列數(shù)據(jù)庫表,但每個系統(tǒng)有各自組織其管理的數(shù)據(jù)方式,MySQL也不例外。
     缺省地,所有由MySQL服務(wù)器mysqld管理的數(shù)據(jù)存儲在一個稱為MySQL數(shù)據(jù)目錄的地方,所有數(shù)據(jù)庫都存放在哪兒,也包括提供服務(wù)器操作信息的狀態(tài)文件。如果你對一個MySQl安裝執(zhí)行管理任務(wù),你應(yīng)該熟知數(shù)據(jù)目錄的布局及用途。
    本文介紹下列專題:
    如何確定數(shù)據(jù)目錄的位置。
    服務(wù)器如何組織并提供對數(shù)據(jù)庫和它管理的表的訪問。
    在哪里找到由服務(wù)器生成的狀態(tài)文件記憶它們包含什么內(nèi)容。
    如何改變?nèi)笔〉攸c或數(shù)據(jù)目錄或單獨數(shù)據(jù)庫的組織結(jié)構(gòu)。
    1、數(shù)據(jù)目錄的位置
    一個缺省數(shù)據(jù)目錄被編譯進(jìn)了服務(wù)器,如果你從一個源代碼分發(fā)安裝MySQL,典型的缺省目錄為/usr/local/var,如果從RPM文件安裝則為/var/lib/mysql,如果從一個二進(jìn)制分發(fā)安裝則是/usr/local/mysql/data。
    在你啟動服務(wù)器,通過使用一個--datadir=/path/to/dir選項可以明確指定數(shù)據(jù)目錄位置。如果你想把數(shù)據(jù)目錄置于其它缺省位置外的某處,這很有用。
    作為一名MySQL管理員,你應(yīng)該知道你的數(shù)據(jù)目錄在哪里。如果你運行多個服務(wù)器,你應(yīng)該是到所有數(shù)據(jù)目錄在哪里,但是如果你不知道確切的位置,由多種方法找到它:
    使用mysqladmin variables從你的服務(wù)器直接獲得數(shù)據(jù)目錄路徑名。查找datadir變量的值,在Unix上,其輸出類似于:
    %mysqladmin variables
    +----------------------+----------------------+
    | variable_name | Value |
    +----------------------+----------------------+
    | back_log | 5 |
    | connect_timeout | 5 |
    | basedir | /var/local/ |
    | datadir | /usr/local/var/ |
    ....
    在Windows上,輸出可能看上去像這樣:
    c:\\\\mysqladmin variables
    +----------------------+----------------------+
    | variable_name | Value |
    +----------------------+----------------------+
    | back_log | 5 |
    | connect_timeout | 5 |
    | basedir | c:\\\\mysql\\\\ |
    | datadir | c:\\\\mysql\\\\data\\\\ |
    ....
    如果你有多個服務(wù)器在運行,它們將在不同的TCP/IP端口或套接字上監(jiān)聽,通過提供連接服務(wù)器正在監(jiān)聽的端口或套接字的--port或--socket選項,你可以輪流獲得它們每一個的數(shù)據(jù)目錄信息: