Я создал представление Django, которое возвращает некоторые данные после чтения из MySql DB. Когда я пытаюсь получить около 6000 строк из базы данных, все работает нормально, и представление возвращает HttpResponse как ожидается.Однако, когда я пытаюсь получить 7000+ строк, я получаю следующую ошибку
(1, "Can't create/write to file '/home/nipun/mysql_temp/MYzplJok' (Errcode: 13)")
Раньше я думал, что ошибка может быть связана с исчерпанием места для / temp, поэтому я изменил настройку tempdir в my.cnf.
Я также удостоверился, что новый tmpdir / home / nipun / mysql_temp и его родительские каталоги доступны для записи посредством смены владельца.
Хотя это не проблема Django, вот представление
def query_json(request):
from django.utils import simplejson
objects=Publisher.objects.filter(location='ROOM_01',sensor_name='CPU_TEMPERATURE').order_by('-id')[0:9000]
json = simplejson.dumps( [{"reading": float(o.reading),
"timestamp": str(o.timestamp)
} for o in objects] )
return HttpResponse(json,mimetype="application/json")
Таким образом, замена фильтра с 9000 на 6000 работает нормально.
Дополнительная информация об ошибке содержится в трассировке стека Django.
errorclass
<class '_mysql_exceptions.InternalError'>
errorvalue
InternalError(1, "Can't create/write to file '/home/nipun/mysql_temp/MYuotga9' (Errcode: 13)")
error
(<class '_mysql_exceptions.InternalError'>,
InternalError(1, "Can't create/write to file '/home/nipun/mysql_temp/MYuotga9' (Errcode: 13)"))
РЕДАКТИРОВАТЬ
В соответствии с комментарием, я попробовал это в моем приглашении MySQL
mysql> CREATE TEMPORARY TABLE t (i int);
ERROR 1005 (HY000): Can't create table 't' (errno: 13)
Таким образом, теперь, по сути, проблема заключается в том, как разрешить MySQL писать во временный каталог