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

MySQL數據目錄的位置

編輯:MySQL綜合教程

MySQL數據目錄是MySQL數據庫的重要部分,如何確定MySQL數據目錄的位置是每一個DBA都需要掌握的知識,下面就讓我們來一起了解一下確定MySQL數據目錄的位置的方法。

一個缺省MySQL數據目錄被編譯進了服務器,如果你從一個源代碼分發安裝MySQL,典型的缺省目錄為/usr/local/var,如果從RPM文件安裝則為/var/lib/mysql,如果從一個二進制分發安裝則是/usr/local/mysql/data。

在你啟動服務器,通過使用一個--datadir=/path/to/dir選項可以明確指定MySQL數據目錄位置。如果你想把數據目錄置於其它缺省位置外的某處,這很有用。

作為一名MySQL管理員,你應該知道你的MySQL數據目錄在哪裡。如果你運行多個服務器,你應該是到所有數據目錄在哪裡,但是如果你不知道確切的位置,由多種方法找到它:

使用mysqladmin variables從你的服務器直接獲得MySQL數據目錄路徑名。查找datadir變量的值,在Unix上,其輸出類似於:
%mysqladmin variables

  1. +----------------------+----------------------+  
  2. | variable_name        | Value                |  
  3. +----------------------+----------------------+  
  4. | back_log             | 5                    |  
  5. | connect_timeout      | 5                    |  
  6. | basedir              | /var/local/          |  
  7. | datadir              | /usr/local/var/      |  
  8. .... 

在Windows上,輸出可能看上去像這樣:

  1. c:\mysqladmin variables  
  2.  
  3. +----------------------+----------------------+  
  4. | variable_name        | Value                |  
  5. +----------------------+----------------------+  
  6. | back_log             | 5                    |  
  7. | connect_timeout      | 5                    |  
  8. | basedir              | c:\mysql\            |  
  9. | datadir              | c:\mysql\data\       |  
  10. ....  

如果你有多個服務器在運行,它們將在不同的TCP/IP端口或套接字上監聽,通過提供連接服務器正在監聽的端口或套接字的--port或--socket選項,你可以輪流獲得它們每一個的數據目錄信息:

  1. %msqladmin --port=port_name variables  
  2.  
  3. %mysqladmin --socket=/path/to/socket variables  

mysqladmin命令可運行在任何你能從其連接服務器的主機上,如果你想在一個遠程主機連接服務器,使用一個--host=host_name選項:

  1. %mysqladmin --host=host_name variables 

在Windows上,你可以通過使用--pipe強制一個命令管道連接和--socket=pipe_name指定管道名來連接監聽一個命令管道的NT服務器:

  1. c:\mysqladmin --pipe --socket=pipe_name variables 

你可以使用ps命令查看任何正在運行mysqld 進程的命令行。
試一下下列命令之一並尋找--datadir:

  1. %ps axww | grep mysql        BSD風格  
  2.  
  3. %ps -ef | grep mysqld            System V風格  

如果你的系統運行多個服務器,ps命令可能特別有用,因為你能馬上發現多個MySQL數據目錄位置,缺點是必須在服務器上運行,而且可能沒有有用的信息產生,除非在mysqld命令行上明確指定了--datadir選項。

如果MySQL是從一個源代碼分發安裝的,你可以檢查其配置信息確定MySQL數據目錄位置。例如,位置可從頂級Makefile中獲得,但是注意,位置是Makefile中的localstatedir值,不是datadir,而且,如果分發位於一個NFS掛載的文件系統並用來為多個主機構建MySQL,配置信息反映了分發被最新構建的主機,這可能不能提供你感興趣的主機的數據目錄信息。
如果上述方式失敗,你可以用find尋找數據庫文件,下列命令尋找“.frm”文件,它是任何MySQL安裝的一部分:

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

在下文各例中,用DATADIR表示MySQL數據目錄位置。

檢查被破壞的MySQL數據文件的方法

MySQL修改表結構語句介紹

MySQL修改表結構中對索引的操作

10大常用MySQL命令行

通過索引優化MySQL語句的實例

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