首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 資料目錄結構全景圖:檔案佈局、狀態檔案與備份核心知識

     編輯:MySQL 資料庫相關知識

資料目錄位置確認

  • 原始碼安裝:/usr/local/var
  • 二進制包:/usr/local/mysql/data
  • RPM 安裝:/var/lib/mysql
  • Windows:BASEDIR\data
  • 啟動參數覆蓋:--datadir=/custom/path

查詢當前位置:mysqladmin variables | grep datadir 或 `ps aux | grep mysqld` 觀察啟動參數。

資料庫與表的檔案映射

  • 資料庫 = 子目錄:DATADIR/db_name/,`CREATE DATABASE` 相當於 `mkdir + chmod 700`。
  • 表 = 三個檔案(以 MyISAM 為例):
    • tbl_name.frm:結構定義(所有引擎通用)。
    • tbl_name.MYD:資料檔(MyISAM)。
    • tbl_name.MYI:索引檔(MyISAM)。
  • InnoDB 共用表空間 ibdata* 或獨立表空間 tbl_name.ibd,不再使用 `.MYD/.MYI`。

關鍵狀態檔案

檔案用途備註
hostname.pid進程 ID,停機腳本發送終止信號用啟動寫入、關閉刪除
hostname.err錯誤日誌(stderr 重導向)僅 `mysqld_safe` 啟動時存在,自動重啟守護依賴此日誌
hostname.log通用查詢日誌`--log` 啟用,記錄所有連接/查詢,含敏感 SQL
hostname-bin.*二進制日誌(更新日誌)`--log-bin` 啟用,主從複製、時間點恢復核心

日誌安全與備份啟示

  • 通用/二進制日誌含明文密碼,權限必須 chmod 600,目錄 chmod 700。
  • 物理備份核心:停機或 `FLUSH TABLES WITH READ LOCK` 後,直接 `tar/cp/rsync` 整個 `DATADIR` 即可完整備份(含結構、資料、索引、權限、日誌位置)。
  • 還原:解壓覆蓋 `DATADIR`,啟動服務即可,極其簡單高效。

總結

掌握資料目錄結構,能精準定位備份範圍、理解日誌作用、排查檔案權限問題,是 MySQL DBA 進階的必修課。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved