exitem alguns casos diferentes nos quais você pode obter este erro:
            Você está usando um versão mais antiga do MySQL (antes da
            3.23.0) quando uma tabela temporária em memória se torna
            maior que tmp_table_size bytes. Para
            evitar este problema, você pode utilizar a opção
            -O tmp_table_size=# para fazer o
            mysqld aumentar o tamanho da tabela
            temporária ou usar a opção SQL
            SQL_BIG_TABLES antes de disparar a
            consulta problematica. See Secção 5.5.6, “Sintaxe de SET”.
          
            Você também pode iniciar mysqld com a
            opção --big-tables. Isto é extamente o
            mesmo que usar SQL_BIG_TABLES para toadas
            as consultas.
          
            No MySQL Versão 3.23, se uma tabelas temporárias em
            memória se torna maior que
            tmp_table_size, o servido automaticamente
            a converte para tabelas em disco MyISAM.
          
            Você está usando tabelas InnoDB e fica
            sem espaço no tablespace do InnoDB.
            Neste cado a solução é extender o tablespace do
            InnoDB.
          
            Você está usando tabelas ISAM ou
            MyISAM em um SO que só suporta arquivos
            de 2G e você alcançou este limite para os arquivos de dado
            ou índice.
          
            Você está usando tabelas MyISAM e o
            dado necessário ou tamanho do índice é maior que alqueles
            para os quais o MySQL alocou ponteiros. (Se você não
            especificar MAX_ROWS para CREATE
            TABLE o MySQL só alocará ponteriros para guardar
            4G de dados).
          
Você pode verificar o tamanho máximo do dados/índice fazendo
SHOW TABLE STATUS FROM database LIKE 'nome_tabela';
            ou usando myisamchk -dv
            database/nome_tabela.
          
Se este é o problema, você pode corrigí-lo fazendo algo como:
ALTER TABLE nome_tabela MAX_ROWS=1000000000 AVG_ROW_LENGTH=nnn;
            Você só precisa especificar
            AVG_ROW_LENGTH para tabelas com campos
            BLOB/TEXT já que neste caso o MySQL não
            pode otimizar o espaço necessário baseado apenas no
            número de linhas.
          
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

