程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MYSQL入門知識 >> 為MySQL配置數據獨立存放,解決ibdata1文件占用空間大問題

為MySQL配置數據獨立存放,解決ibdata1文件占用空間大問題

編輯:MYSQL入門知識
 

經常使用MySQL並啟用了InnoDB引擎的時候,會發現數據庫相應目錄下,ibdata1這個文件會越來越大,並且即便刪除表中數據也無法減小其空間占用。所以,接下來的配置就是為了解決這個問題。

1、先停止所有訪問數據庫的服務;
2、導出數據文件;

mysqldump -u root -p dbname| gzip > dbname.sql.gz

該命令會將數據庫壓縮導出,會慢點,如果你數據庫並不大的話,可以不用壓縮,那麼就是:

mysqldump -u root -p dbname > dbname.sql

3、修改MySQL配置;

vi /etc/mysql/my.cnf

在[mysqld]下添加一行:

innodb_file_per_table

並刪除數據庫所在路徑中的ibdata1及兩個log文件。
然後重新啟動數據庫:

service mysql restart

接下來登進數據庫,使用以下命令查看配置是否生效:

show variables like '%per_table%';

如果輸出結果為ON,那麼配置已經修改成功;
4、導入原來的數據
登入數據庫後執行:

source dbname.sql

或者不登錄mysql執行:

mysqldump -uroot -p dbname < dbname.sql;

導入完成後即可發現,ibdata1這個文件已經不怎麼增長了,所有數據表的數據都會存在他自己目錄下的同名db文件中,這時候清理表數據後,空間占用也會相應的減小。

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