Mysql2::Error:排序内存不足,请考虑使用 docker-compose.yml 增加服务器排序缓冲区大小

lau*_*ano 2 mysql mysql-workbench docker docker-compose

您好,我正在构建一个 Rails 应用程序,我导入了大量数据并插入到数据库中。有些表没问题,有些表有一些错误,提示内存排序错误。

SQL错误

Mysql2::Error: Out of sort memory, consider increasing server sort buffer size
Run Code Online (Sandbox Code Playgroud)

如何使用命令增加服务器排序缓冲区大小docker-compose.yml

我试过这个:

version: '3'
services:
  db:
    image: mysql:latest
    command:
      - --default-authentication-plugin=mysql_native_password
      - --innodb-buffer-pool-size=402653184
Run Code Online (Sandbox Code Playgroud)

我确实添加了这个命令:

--innodb-buffer-pool-size=402653184
Run Code Online (Sandbox Code Playgroud)

但我仍然遇到同样的错误,即内存不足。有什么方法可以使用以下方法增加缓冲区大小docker-compose.yml

lau*_*ano 6

事实证明,当我对此进行测试时,这解决了我在mysql containerdocker 中的错误。

将此命令添加到docker-compose.yml您的db服务下以增加您的内存。

--sort_buffer_size=1073741824
Run Code Online (Sandbox Code Playgroud)

当您的应用程序在 docker 上运行时消除错误。

Error "1038 Out of sort memory, consider increasing server sort buffer size
Run Code Online (Sandbox Code Playgroud)

请注意,它1073741824等于字节并且将导致1GB内存分配。