Mysql ne Peut pas créer/écrire dans un fichier d'erreur#13

J'avais créé un Django point de vue qui est la restitution d'une partie des données après lecture à partir de bases de données MySql.Quand je l'ai essayer et de chercher autour de 6000 lignes de la Base de données,tout fonctionne bien et la vue renvoie HttpResponse comme c'est prévu.Cependant, comme j'essaie de récupérer plus de 7000 lignes j'obtiens l'erreur suivante

(1, "Can't create/write to file '/home/nipun/mysql_temp/MYzplJok' (Errcode: 13)")


Plus tôt, j'ai pensé que l'erreur peut être due à l'espace s'épuiser pour /temp,j'ai donc changé le tempdir paramètre dans mon.cnf


J'ai également veillé à ce que les nouveaux tmpdir /home/nipun/mysql_temp et c'est parent sont les répertoires accessibles en écriture par moi par la modification de la propriété.
Bien que ce n'est pas un Django problème,ici, c'est le point de vue

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")

Donc dans le remplacement des filtres à 9000 6000 fonctionne très bien.


Plus d'informations sur l'erreur est fourni dans le Django trace de la pile

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)"))

MODIFIER


Comme par un commentaire, j'ai essayé sur mon invite MySQL

mysql> CREATE TEMPORARY TABLE t (i int);
ERROR 1005 (HY000): Can't create table 't' (errno: 13)

Donc, essentiellement, il est maintenant question de comment permettre à MySQL pour écrire dans le répertoire temporaire

errno 13 est EACCESS (permission denied) sur ma machine. Êtes-vous sûr que vous avez défini les autorisations de sorte que l'utilisateur Django fonctionne comme peut écrire le fichier, pas seulement vous?
Lorsque j'essaie de l'attraper 6000 lignes ou moins,il fonctionne.Donc je suppose que les autorisations sont beaux
Que pourrait être parce que le client MySQL n'a qu'à créer un fichier temporaire lorsque vous êtes saisissant plus de 6000 lignes...
Donc, j'ai aussi maintenant fait un chmod 777 sur /home et ses sous-dossiers,notamment sur le tmpdir.Obtiens toujours la même erreur

OriginalL'auteur Nipun Batra | 2011-12-26