有时候在mysql
中创建临时表或者导入一个数据量较大的库时会遇到“The table ‘xxxx’ is full”的报错,这是因为mysql
默认的临时表大小只有16M,所以可以调大它的大小来解决这个问题。
修改临时表大小有两种方式,一种是修改后台的mysql运行配置文件mysqld.cnf
,另一种是修改全局变量的方式。因为修改配置文件需要重启mysql服务,所以一般更推荐使用第二种方式,这里也只介绍第二种方式。
使用终端工具连接上Mysql,首先可以先查看一下当前的临时表大小是多少,执行下方的sql语句:
select @@global.max_heap_table_size;
select @@global.tmp_table_size;
得到结果如下:
可以看到,默认的大小是16M(16777216/1024/1024=16)
然后就可以更改这两个变量的大小,把它修改大一点即可,执行下方的sql语句:
set global max_heap_table_size=256*1024*1024;
set global tmp_table_size=256*1024*1024;
然后再次查询一下,可以看到这2个变量的大小已经更新: