当数据量过大时,通过工具(sqlYog、Navicat)查询表数据时,会报Got error 28 from storage engine
错误,详情截图如下
网上搜寻好解决方法,好多都是直接清空临时表空间,感觉不可以行,如果是重要数据,仅仅因为内存不足,清空表空间,造成数据丢失,就得不偿失了,经过多方搜寻,查找思路以及解决方案如下:
- 进入mysql自带的临时表空间目录,linux一般为:mysql/data下:cd usr/local/mysql
- 查看占用内存情况:du -sh *
- 占用40g内存的即为表数据存放处,如不是重要数据,清空里面的数据即可(数据库中的数据也同样会消失)
- 如是重要数据,修改my.cnf文件(一般再mysql安装目录下)在mysqld下面添加
tmpdir=/home/mysql
(/home/mysql`为自己自定义的表空间)
5,重启mysql,会发现,可以正常使用