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

Mysql 數據庫目錄結構

編輯:關於MYSQL數據庫
MySQL 安裝目錄下的 my.ini 中的 datadir 可以改變數據文件所在目錄

每一個子目錄表示一個數據庫。若是 MyISAM 引擎,則表定義放在 [table_name].frm,數據放在 [table_name].MYD,索引放在 [table_name].MYI 中。若是 InnoDb 引擎,則表定義放在 [table_name].frm,數據放在 ibdata1,日志放在 ib_logfile 中。

將 mysql 服務停止,然後將 數據庫目錄和 ib_logfile0、ib_logfile1、ibdata1 拷貝至另一台機器上的 mysql 數據目錄,重新啟動另一台機器的 MySQL 服務,則這個數據庫可以完整的遷移過去。

除了備份二進制數據文件,使用 MySQLdump 是另一種 backup 的方法,這個工具使用文本的方式保存 dump 出的數據。

-----------------------------------------------------------------------

今天試圖將 Windows 下的 innodb 數據庫文件直接導入 Linux,通過 "MySQLadmin -u root -p version" 查得其版本分別是 5.0.37-community-nt 和 5.0.32-Debian_7etch10-log

先關閉兩個 mysql 服務,把 ib_logfile0 ib_logfile1 ibdata1 和所有 .frm 文件都拷貝至 linux。重啟 Linux 的 MySQL,試圖查詢時出錯:1017 Can't find file: '.....frm' (errno: 13)。後發現是由數據庫目錄的 "x" 權限未設置所導致。

修復後出現錯誤:1033 incorrect Information in file,後在 MySQL 中使用 "show engines" 驚奇的發現 InnoDB 被 DISABLE 了。

最初我懷疑時 apt-get 下載的版本沒有把 innodb 編譯進去,我在網上不停的G解決方案,有一個人的方案挺靠譜的,他說 my.cnf 裡 innodb_log_file_size 和目錄中的 ib_logfile0、ib_logfile1 文件大小不一致,所以啟動時出錯了。我把這兩個文件(都是10M)刪除掉,重啟 mysql,出現兩個 5M 的文件。實際上 my.cnf 裡並沒有配置 innodb_log_file_size,所以默認為 5M 了。最後我按照 MySQL help doc 裡面說的那樣將其設置成了 256M。

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