mysql 报错 :The table xxx is full

############################################

现象:

用户执行的sql语句报错:
Cause: java.sql.SQLException: The table '/home/work/mysql_3306//tmp/#sql117f0c_db7113_a4' is full

 

原因:参数internal_tmp_mem_storage_engine是默认值TempTable,当临时表大小超过 temptable_max_ram+temptable_use_mmap=1G+1G=2GB的设置时,sql报错。

复制代码
mysql> show variables like '%temptable_max%';
+--------------------+------------+
| Variable_name      | Value      |
+--------------------+------------+
| temptable_max_mmap | 1073741824 |
| temptable_max_ram  | 1073741824 |
+--------------------+------------+
2 rows in set (0.00 sec)

mysql> 
复制代码

 

mysql> show variables like '%internal%';
+---------------------------------+-----------+
| Variable_name                   | Value     |
+---------------------------------+-----------+
| internal_tmp_mem_storage_engine | TempTable |
+---------------------------------+-----------+
1 row in set (0.01 sec)

 

 

解决:修改参数internal_tmp_mem_storage_engine=MEMORY,当临时文件超过tmp_table_size=512MB时,使用磁盘文件,避免由于设定的内存不足而退出。

mysql> set global  internal_tmp_mem_storage_engine=memory;
Query OK, 0 rows affected (0.00 sec)

 

在/home/work/mysql_3306/conf/my.cnf配置文件中添加

[mysqld]

internal_tmp_mem_storage_engine=memory

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

################################

posted @   igoodful  阅读(744)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
历史上的今天:
2020-06-15 diff
2018-06-15 039-冒泡排序
2018-06-15 038-选择排序
点击右上角即可分享
微信分享提示