有时候在mysql中创建临时表或者导入一个数据量较大的库时会遇到“The table ‘xxxx’ is full”的报错,这是因为mysql默认的临时表大小只有16M,所以可以调大它的大小来解决这个问题。
    修改临时表大小有两种方式,一种是修改后台的mysql运行配置文件mysqld.cnf,另一种是修改全局变量的方式。因为修改配置文件需要重启mysql服务,所以一般更推荐使用第二种方式,这里也只介绍第二种方式。

    使用终端工具连接上Mysql,首先可以先查看一下当前的临时表大小是多少,执行下方的sql语句:

    1. select @@global.max_heap_table_size;
    2. select @@global.tmp_table_size;

    得到结果如下:
    image.png
    image.png
    可以看到,默认的大小是16M(16777216/1024/1024=16)

    然后就可以更改这两个变量的大小,把它修改大一点即可,执行下方的sql语句:

    1. set global max_heap_table_size=256*1024*1024;
    2. set global tmp_table_size=256*1024*1024;

    然后再次查询一下,可以看到这2个变量的大小已经更新:
    image.png
    image.png