mysql报错out of sort memory

前言

最近再用MySQL数据库排序时遇到了一个报错,Out of sort memory, consider increasing server sort buffer size,字面翻译就是排序缓冲区内存不足,下面记录下如何解决

解决

1、打开MySQL终端连接到数据库

1
mysql -u root -p

输入密码后,连接到数据库

2、用命令看下当前缓冲区大小

1
show variables like '%sort_buffer_size%'; 

找到 sort_buffer_size这行,后面的value就是大小,比如1024 * 1024 才是1KB的大小,根据实际情况调整该大小

3、调整sort_buffer_size大小,比如我要调整到512k

1
SET GLOBAL sort_buffer_size = 512000000;

4、执行上述sql后,不要着急查询,需要先exit退出当前mysql连接,重新连接才能生效,如果是navicat,需要关闭当前数据库连接,重新打开才可生效

最后再尝试排序,发现已正常,无报错

注意

这种设置方式在mysql重启后会失效,所以如果需要永久生效,请在my.cnf中配置