您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
一位不愿透露姓名的用户 发布于2020年06月30日 17:27 最近更新于 2020年07月03日 21:48

java.sql.SQLException: Out of sort memory, consider increasing server sort buffer size 如何解决?

7844 次浏览 读完需要≈ 3 分钟 MySQL

我使用的 MySQL版本为最新的 8.0.20 64bit。操作系统为 Windows 7 旗舰版 64位。

在使用JDBC连接MySQL时出现以下错误信息,请问该如何解决呢?

Caused by: java.sql.SQLException: Out of sort memory, consider increasing server sort buffer size
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.20.jar:8.0.20]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.20.jar:8.0.20]
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.20.jar:8.0.20]
	at com.mysql.cj.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:637) ~[mysql-connector-java-8.0.20.jar:8.0.20]
	at com.mysql.cj.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:418) ~[mysql-connector-java-8.0.20.jar:8.0.20]
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1003) ~[mysql-connector-java-8.0.20.jar:8.0.20]

1 个回答

Ready · 3年前

这是MySQL的内存溢出问题,请注意错误日志中的关键信息:

Out of sort memory, consider increasing server sort buffer size

上述信息的大意是:排序(所需的)内存不足,请考虑增加服务器的排序缓冲区大小

因此,我们需要调整MySQL的服务器配置。你可以在MySQL的配置文件my.inimy.conf(在Windows系统中,以上两种文件格式任一均可;在类Unix系统中,配置文件格式为.cnf)中添加如下配置代码(如果没有配置文件,自行新建即可):

[mysqld]
# 256KB为默认值,请根据实际需要自行扩容,例如"4MB"
sort_buffer_size=4MB

MySQL的配置文件my.inimy.conf在什么位置呢?

看你的问题描述,你用的Windows系统,那么你可以将配置文件放在以下任意目录中:

  • Windows系统的安装根目录%WINDIR%(一般是C:\Windows
  • C盘根目录(即:C:
  • MySQL程序的安装根目录

以上几个都是比较常见的可以放置MySQL配置文件的目录。

当然,官方支持的远不止如此。你可以自行参考MySQL的配置文件的官方文档了解更多细节。

已采纳 ? 0 0 0 编辑

撰写答案