程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> Mysql入門系列:MySQL數據目錄的位置

Mysql入門系列:MySQL數據目錄的位置

編輯:關於MYSQL數據庫

  從概念上講,大多數關系數據庫系統都是類似的:它們都由一組數據庫組成,且每個數據庫都包含一組表。但是,所有的系統都有自己的管理數據的方法, MySQL也不例外。

  在缺省設置時,由MySQL服務器mysql管理的所有數據都存儲在MySQL數據目錄中。所有的數據庫和提供有關服務器操作信息的狀態文件也存儲在那裡。如果要執行MySQL安裝的管理職責,應該熟悉數據目錄的布局和使用。

  本章包括以下內容:

  怎樣確定數據目錄的位置。需要了解這一點,以便有效地管理其內容。

  服務器怎樣組織和提供對它所管理的數據庫和表的訪問。

  在哪裡查找由服務器產生的狀態文件且文件中包含什麼內容。它們的內容提供了關於服務器運行的信息,如果您遇到問題,這些信息將是有用的。

  如何改變數據目錄或單個數據庫的缺省布局或組織。這對於管理系統的磁盤資源分配是重要的─例如,通過在驅動器中平衡磁盤的活動,或通過利用更多的可用空間將數據重定位到文件系統中。還可以使用這個知識來計劃新數據庫的布局。

  即使不執行任何MySQL管理職責,也能通過閱讀本章的內容而有所收獲,它決不會影響您對如何運行服務器有更好的想法。

  數據目錄的位置

  缺省數據庫的位置編譯在服務器中。如果您是在一個源程序分發包中安裝MySQL,典型的缺省位置可能是/ us r / l o c a l / v a r;如果在二進制分發包中安裝MySQL,則為/ us r / l o c a l / mysql/d a t a;在RPM 文件中安裝,為/ v a r / l i b / MySQL。

  數據目錄的位置可以在啟動服務器時通過--datadir = / p a t h / to / dir 明確地指定。如果您想將數據目錄放置在其他地方而非缺省的位置,則這個選項是有用的。

  作為一名MySQL管理員,您應該知道數據目錄在哪裡。如果運行多個服務器,那麼您應該掌握所有數據目錄的位置。但是,如果不知道目錄的位置(或許您正在代替前一位管理員,而他留下的記錄很糟糕),有幾種方法可以用來查找它:

  可使用MySQLadmin 變量直接從服務器中得到數據目錄路徑名。在UNIX 中,輸出結果類似於如下所示:

  

  該輸出結果指明了服務器主機中數據目錄的位置/ us r / l o c a l / v a r。

  在Windows 中,輸出結果類似於如下所示:

  如果正在運行多個服務器,它們將監聽不同的TCP/IP 端口號和套接字。可以通過提供合適的--port 或--socket 選項連接到每個服務器監聽的端口和套接字上:

  % MySQLadmin -- port=port_num variables

  % MySQLadmin -- socket=/path/to/socket variables

  MySQLadmin 命令可在您連接服務器的任何一台主機上運行。如果需要連接到遠程主機上的服務器,則使用--host = host_name 選項:

  % MySQLadmin --host=host_name variables

  在Windows 中,您可以購買Windows NT 服務器,它通過使用--pipe 迫使一個指定的管道連接,並使用--socket = pipe_name 指定該管道的名稱,在該管道上進行監聽。

  c:>MySQLadmin --pipe --socket=pipe_name variables

  可使用ps 來查看任何當前執行MySQL進程的命令行。試一試下列的命令(根據您的系統所支持的ps 版本)並查找顯示在輸出結果中的這些命令的- - d a t a d i r:

  % ps axww | grep MySQLd BSD-style ps

  % ps -ef | grep MySQLd System V-style ps

  如果系統運行多個服務器(因為一次發現了多個數據目錄位置),則ps 命令將會特別有用。它的缺點是: ps 必須運行在服務器的主機上,並且除非--datadir 選項在MySQLd 命令行中明確指定,否則將產生無用的信息。

  如果MySQL從源程序分發包中安裝,可以檢查其配置信息以確定數據目錄的位置。例如,在最高級的Makefile 中該位置是可用的。但是,要小心:位置是Makefile 中的變量localstatedir 的值,而不是datadir 的值。同樣,如果分發包定位在NFS 裝配文件系統中,並且是用於為幾個主機建立MySQL的,則配置信息反映最近建立分發包的主機。它可能不顯示您感興趣的主機的數據目錄。

  如果前面的任何方法都不成功,可使用find 搜索數據庫文件。下列命令將搜索. f r m(描述)文件,它是MySQL安裝程序的組成部分:

  % find / -name " *.frm" -print

  在本章的這些例子中,筆者將MySQL數據目錄的位置表示為DATA D I R。您可以將其解釋成為您自己的機器中的數據目錄的位置。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved