mysql ibdata1文件過大解決


問題 :阿里雲有台mysql服務器的硬盤快滿了。主要是/var/lib/mysql/ibdata1文件很大

 

 

解決方法:備份數據庫-->停用數據庫-->修改mysql配置文件-->刪除ib*開頭的文件-->啟動數據庫-->還原數據庫

1.備份

mysqldump -u root -p  --all-databases  --add-drop-database   --flush-privileges --routines   > /mnt/data/all-database.sql

參數說明: 

  --all-databases         備份全部數據庫

  --add-drop-database     每個數據庫創建之前添加drop數據庫語句 

  --flush-privileges     在導出mysql數據庫之后,發出一條FLUSH  PRIVILEGES 語句。為了正確恢復,該選項應該用於導出mysql數據庫和依賴mysql數據庫數據的任何時候

  --routines           導出存儲過程以及自定義函數

2.停用數據庫

systemctl  stop mysqld  或者 service mysqld stop

3.修改文件

vim /etc/my.cnf

[mysqld]

innodb_file_per_table=1

4.刪除文件

cd /var/lib/mysql/

rm -f  ib*

5.啟動數據庫

systemctl start mysqld  或者 service mysqld start 

6.還原數據庫

mysql  -uroot -p

source  /mnt/data/all-database.sql

完成!

 

注意事項:

1.停用數據庫注意要用服務停,不要直接kill, 后面重啟可能會報錯。

2.修改配置文件並且沒有刪除ib* ,數據庫一直起不來,報錯,把ib*文件刪除在重啟

3.Table‘performance_schema.session_variables’ doesn’t exist的異常

   3.1  mysql_upgrade -uroot -p

   3.2  systemctl stop mysqld

   3.3  systemctl  start  mysqld

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM