日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

收縮Mysql的ibdata1文件大小方法

系統 2190 0
ibdata1是mysql數據庫中一個數據文件了,你會發現它來越大了,下面我來介紹收縮Mysql的ibdata1文件大小方法


如果你有使用InnoDB來存儲你的Mysql表,使用默認設置應該會碰到個非常頭疼的問題,在Mysql的數據目錄里有個默認只有10MB叫ibdata1的文件沒日沒夜的增長讓你煩透了吧?里面包含了InnoDB引擎存儲的所有索引和數據信息,很可惜Mysql在設計的時候就沒有收縮InnoDB表的功能,這就是為什么你在delete,truncate,drop這些表的時候這個文件大小沒有絲毫要減少的原因,而且你還沒辦法直觀的看到哪個 數據庫 占用了大量的ibdata1,這個坑爹的問題在新版的Mysql中已經通過innodb_file_per_table這個選項來解決了,開啟該選項后,每個InnoDB表的索引和數據都會按*.ibd命名存儲到各個 數據庫 中,但是這個選項默認是不開啟的。

如上所說,你沒法去收縮InnoDB數據文件,你也沒辦法在一臺沒有打開innodb_file_per_table選項的機器上直接加上該選項讓他工作,你必須在安裝完Mysql就加上這個選項,或者按照本文介紹的三種方式來操作,無論你做任何操作,請確保你已經備份了整個數據庫目錄,也別忘了停掉Mysql相關的一些服務。

前兩個方法需要獲取到Mysql數據庫實例中所有InnoDB的清單,如果你使用的是5.0以上的版本,這一切都很容易:SELECT TABLE_SCHEMA,TABLE_NAME FROM TABLES WHERE ENGINE = ‘InnoDB’;

修改表引擎
1.對每個InnoDB表執行 ALTER TABLE table_name ENGINE=MyISAM;
2.停止Mysql服務;
3.移除InnoDB相關文件ibdata1等;
4.修改my.cnf中的參數,添加innodb_file_per_table;
5.啟動Mysql服務;
6.將剛才修改后的那些表改回InnoDB:ALTER TABLE table_name ENGINE=InnoDB;
導出InnoDB表
1.使用 mysqldump 命令導出所有的InnoDB表,例如: mysqldump –add-drop-table –extended-insert –disable-keys –quick ‘db_name’ –tables ‘tbl_name’ > ‘db_name.tbl_name.sql’
2.刪掉這些表:?
?SET FOREIGN_KEY_CHECKS=0;
?DROP TABLE db_name.tbl_name;
?DROP TABLE db_name1.tbl_name1;
?–– DROP other tables here…
?SET FOREIGN_KEY_CHECKS=1;
3.停止Mysql服務;
4.移除InnoDB相關文件ibdata1等;
5.修改my.cnf中的參數,添加innodb_file_per_table;
6.啟動Mysql服務;
7.在Mysql Console下導入表:?
?SET FOREIGN_KEY_CHECKS=0;
?SOURCE db_name.tbl_name.sql;
?SOURCE db_name1.tbl_name1.sql;
?–– SOURCE other files here…
?SET FOREIGN_KEY_CHECKS=1;
導出整個數據庫
這個是我常用的,雖然他和耗磁盤和時間,但是確實是最簡便的:

1.導出所有的數據: /usr/bin/mysqldump ––extended-insert ––all-databases ––add-drop-database ––disable-keys ––flush-privileges ––quick ––routines ––triggers > all-databases.sql
2.停止Mysql服務;
3.重命名mysql數據文件夾;
4.修改my.cnf中的參數,添加innodb_file_per_table;
5.mysql_install_db重新初始化mysqld;
6.開啟Mysql服務;
7.進入Mysql Console執行:?
?SET FOREIGN_KEY_CHECKS=0;
?SOURCE all-databases.sql;
?SET FOREIGN_KEY_CHECKS=1;
8.重啟數據庫測試OK就領賞去吧。

收縮Mysql的ibdata1文件大小方法


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 十堰市| 鱼台县| 西青区| 内黄县| 白河县| 行唐县| 临泽县| 彰化县| 育儿| 西和县| 湟中县| 广西| 凤凰县| 奉新县| 阿鲁科尔沁旗| 宣武区| 阿克苏市| 安西县| 潍坊市| 庄浪县| 阜新| 章丘市| 冷水江市| 福泉市| 麟游县| 正镶白旗| 临朐县| 封丘县| 都昌县| 新龙县| 镇雄县| 大渡口区| 拉萨市| 西林县| 开江县| 洛阳市| 苍南县| 油尖旺区| 渝中区| 三河市| 密云县|