如何在MySQL中清理或调整ibtmp1文件的大小?

Ama*_*wal 16 mysql database innodb mysql-5.7

MySQL 5.7引入了一个新文件ibtmp1,用于在InnoDB中存储临时数据以提高性能.

但我注意到它的大小不断增加.在我的数据库服务器上,它的大小增加到92GB.

有没有办法减少大小或删除文件而不重新启动服务器

谢谢

Ama*_*wal 26

如果没有重新启动mysql服务,ibtmp1一旦创建就无法通过任何方法收缩.

有两种方法可以处理它:

注意事项:在服务器启动时,您应该将此文件的大小限制为:

 innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G
Run Code Online (Sandbox Code Playgroud)

其中max 5G表示此文件大小限制为5GB.

解决 :如果文件已经创建,则需要重新启动服务:

SET GLOBAL innodb_fast_shutdown = 0;
Shutdown MySQL
remove ibtmp1
start MySQL.
Run Code Online (Sandbox Code Playgroud)

  • 迷你教程:编辑文件`/etc/mysql/mysql.conf.d/mysqld.cnf`。添加最后一行:`innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G`(或 xG)。重启Mysql: `sudo service mysql restart` --- 检查`/var/lib/mysql/ibtmp1`文件大小。 (8认同)

小智 5

在 mysql 5.7 及更高版本中,回收 ibtmp1 文件使用的空间所需要做的就是重新启动服务

不必设置GLOBAL innodb_fast_shutdown = 0; 或手动删除文件。