MySQL 5.7引入了一个名为ibtmp1的新文件,用于存储InnoDB的临时数据以提高性能。
但我注意到它的大小不断增加。在我的数据库服务器上,它的大小增长到了92GB。
是否有任何方法可以减小它的大小或删除该文件而无需重启服务器?
谢谢
MySQL 5.7引入了一个名为ibtmp1的新文件,用于存储InnoDB的临时数据以提高性能。
但我注意到它的大小不断增加。在我的数据库服务器上,它的大小增长到了92GB。
是否有任何方法可以减小它的大小或删除该文件而无需重启服务器?
谢谢
注意:创建了 ibtmp1 文件后,无法通过任何方法在不重启 MySQL 服务的情况下缩小它。处理该问题有两种方法:
预防措施:在服务器启动时,你应该将该文件的大小限制为:
innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G
其中max 5G表示该文件大小限制为5GB。
解决方法:如果文件已经创建,你需要重新启动服务:
SET GLOBAL innodb_fast_shutdown = 0;
Shutdown MySQL
remove ibtmp1
start MySQL.
文档:https://dev.mysql.com/doc/refman/5.7/en/innodb-temporary-tablespace.html
要解决这个问题,请按照以下步骤进行:
1- 运行以下命令:
sudo nano /etc/mysql/my.cnf
2- 在 [mysqld] 行下添加以下行:
innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G
3- 保存文件。
4- 现在我们需要释放一些磁盘空间并删除 ibtmp1,可以通过重新启动 SQL 服务器来完成:
sudo service mysql restart