缺省數(shù)據(jù)庫的位置編譯在服務(wù)器中。如果您是在一個源程序分發(fā)包中安裝mysql,典型的缺省位置可能是/ us r / l o c a l / v a r;如果在二進制分發(fā)包中安裝mysql,則為/ us r / l o c a l / mysql/d a t a;在rpm 文件中安裝,為/ v a r / l i b / mysql。 數(shù)據(jù)目錄的位置可以在啟動服務(wù)器時通過--datadir = / p a t h / to / dir 明確地指定。如果您想將數(shù)據(jù)目錄放置在其他地方而非缺省的位置,則這個選項是有用的。 作為一名mysql管理員,您應(yīng)該知道數(shù)據(jù)目錄在哪里。如果運行多個服務(wù)器,那么您應(yīng)該掌握所有數(shù)據(jù)目錄的位置。但是,如果不知道目錄的位置(或許您正在代替前一位管理員,而他留下的記錄很糟糕),有幾種方法可以用來查找它: 可使用mysqladmin 變量直接從服務(wù)器中得到數(shù)據(jù)目錄路徑名。在unix 中,輸出結(jié)果類似于如下所示: 該輸出結(jié)果指明了服務(wù)器主機中數(shù)據(jù)目錄的位置/ us r / l o c a l / v a r。 在windows 中,輸出結(jié)果類似于如下所示: 如果正在運行多個服務(wù)器,它們將監(jiān)聽不同的tcp/ip 端口號和套接字。可以通過提供合適的--port 或--socket 選項連接到每個服務(wù)器監(jiān)聽的端口和套接字上: % mysqladmin -- port=port_num variables % mysqladmin -- socket=/path/to/socket variables mysqladmin 命令可在您連接服務(wù)器的任何一臺主機上運行。如果需要連接到遠程主機上的服務(wù)器,則使用--host = host_name 選項: % mysqladmin --host=host_name variables 在windows 中,您可以購買windows nt 服務(wù)器,它通過使用--pipe 迫使一個指定的管道連接,并使用--socket = pipe_name 指定該管道的名稱,在該管道上進行監(jiān)聽。 c:/>mysqladmin --pipe --socket=pipe_name variables 可使用ps 來查看任何當前執(zhí)行mysql進程的命令行。試一試下列的命令(根據(jù)您的系統(tǒng)所支持的ps 版本)并查找顯示在輸出結(jié)果中的這些命令的- - d a t a d i r: % ps axww | grep mysqld bsd-style ps % ps -ef | grep mysqld system v-style ps 如果系統(tǒng)運行多個服務(wù)器(因為一次發(fā)現(xiàn)了多個數(shù)據(jù)目錄位置),則ps 命令將會特別有用。它的缺點是: ps 必須運行在服務(wù)器的主機上,并且除非--datadir 選項在mysqld 命令行中明確指定,否則將產(chǎn)生無用的信息。 如果mysql從源程序分發(fā)包中安裝,可以檢查其配置信息以確定數(shù)據(jù)目錄的位置。例如,在最高級的makefile 中該位置是可用的。但是,要小心:位置是makefile 中的變量localstatedir 的值,而不是datadir 的值。同樣,如果分發(fā)包定位在nfs 裝配文件系統(tǒng)中,并且是用于為幾個主機建立mysql的,則配置信息反映最近建立分發(fā)包的主機。它可能不顯示您感興趣的主機的數(shù)據(jù)目錄。 如果前面的任何方法都不成功,可使用find 搜索數(shù)據(jù)庫文件。下列命令將搜索. f r m(描述)文件,它是mysql安裝程序的組成部分: % find / -name " *.frm" -print 在本章的這些例子中,筆者將mysql數(shù)據(jù)目錄的位置表示為data d i r。您可以將其解釋成為您自己的機器中的數(shù)據(jù)目錄的位置。