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

壓縮MySQL數據文件的妙招

編輯:MySQL綜合教程

 MySQL數據文件如果過大,能否進行壓縮呢?答案是肯定的。下面就教您一個壓縮MySQL數據文件的方法,希望對您能有所幫助。
  MySQL使用一段時間後,MySQL數據文件ibdata會增長得很大(主要是針對innodb的存儲方式,有大量插入刪除操作的數據庫),有沒有很好的辦法可以收縮(shrink)MySQL數據文件呢?在網上查了一下,沒有太好的辦法,只提到刪除重建MySQL數據文件的方式,實際就是備份-刪除-恢復的方法,我試驗了一下,基本可行,但還是有一些注意事項:
  1. 用mysqldump等工具導出數據我的數據庫使用latin1字符集,必須強制在參數裡指定(否則默認按UTF8導出中文會變亂碼):mysqldump ——add-drop-table ——user=root ——flush-logs ——default-character-set=latin1 ——password=mysql mydbname > c:\bak_all.sql注意SQLyog等工具也提供導出類似導出功能,但它們的導出不一定好用,有可能導出來後有亂碼或不能執行。
  2. 停止 mysqld (也就是mysql的服務)
  3. 刪除ibdata*, ib_logfile* 文件,最好連你的用戶數據庫目錄一起刪除,不然導回時可能報錯
  4. 重新啟動 mysqld(這時mysqld就會自動創建 idbdata*, ib_logfile* 文件)
  如果前面已刪除了數據庫目錄,這是需要重建一個你的用戶數據庫(用SQLyog等工具建新數據庫非常簡單)
  5. 將導出來的數據導回去,體積才會減小。
  可以使用命令:mysql ——user=root ——password=mysql mydbname < c:\bak_all.sql
  當然,也可以在SQLyog的查詢工具裡執行sql文件來恢復。
  另外,提供一個小技巧,如果你的帳號密碼帶有空格,在命令行怎麼輸入呢?
  很簡單,在你的帳號密碼兩邊帶上英文雙引號 " (注意不是單引號)。比如:mysqldump ——add-drop-table ——user=root ——flush-logs ——default-character-set=latin1 ——password=" " mydbname > c:\bak_all.sql

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