2010-06-03 10 views
0

(Voir ma réponse ci-dessous. Laissant cela dans le cas où il aide quelqu'un d'autre.)problèmes étranges avec MySQL outfile sous FreeBSD

Ce qui suit est une série de tentatives de sauvegarder une requête à un fichier de sortie sur une nouvelle boîte FreeBSD que mon site a déménagé. Les résultats sont les mêmes si je me connecte en tant que moi ou si je me connecte en tant que root. J'espère que le style n'est pas trop énervant. J'ai mes commentaires commentés autour du code et de la sortie.

// essayer de vider requête à mon répertoire personnel

SELECT pmr.datetime_requested, 
nfo.postal_code 
FROM 
print_mailing_request pmr, 
personal_info nfo 
WHERE 
nfo.person = pmr.person AND 
pmr.datetime_requested >= "2010-01-01 00:00:00" AND 
(pmr.print_mailing = 31 OR pmr.print_mailing = 30) 
ORDER BY pmr.datetime_requested INTO OUTFILE '/usr/home/david/x'; 

ERROR 1 (HY000): Can't create/write to file '/usr/home/david/x' (Errcode: 2) 

// essayé la création du fichier d'abord avec contact et même chmod 077 fichier // mais même erreur chaque fois

// OK, Essayons/tmp

SELECT pmr.datetime_requested, 
nfo.postal_code 
FROM 
print_mailing_request pmr, 
personal_info nfo 
WHERE 
nfo.person = pmr.person AND 
pmr.datetime_requested >= "2010-01-01 00:00:00" AND 
(pmr.print_mailing = 31 OR pmr.print_mailing = 30) 
ORDER BY pmr.datetime_requested INTO OUTFILE '/tmp/x'; 

Query OK, 24654 rows affected (0.78 sec) 

// si nous regardons le fichier

less /tmp/x 
/tmp/x: No such file or directory 

// Connexion de nouveau dans MySQL et essayer à nouveau même requête

ERROR 1086 (HY000): File '/tmp/x' already exists 

ls /tmp 
20100325180233.gtg2010.csv  20100330094652.gtg2010.csv 
20100325180448.gtg2010.csv  2010_Q1_UNO.csv 
20100325181446.gtg2010.csv  4724.csv 
20100325181927.gtg2010.csv  aprbUfvxp 
20100326003002.gtg2010.csv  dave.txt 
20100327003002.gtg2010.csv  etr.xml 
20100328003002.gtg2010.csv  mysql.sock 
20100329003003.gtg2010.csv 

// Aucun fichier x.

// Si je lance requête sans INTO OUTFILE Je vois 24000+ lignes de

| 2010-04-04 13:27:09 | 33156    | 
| 2010-04-04 13:27:10 | 33156    | 
| 2010-04-04 13:30:04 | NE38 8SR    | 
| 2010-04-04 14:27:03 | 00901    | 
| 2010-04-04 14:37:04 | 75001    | 
| 2010-04-04 14:53:05 | 78640    | 
| 2010-04-04 15:15:03 | 07410    | 
| 2010-04-04 15:27:04 | 43235    | 

// Alors je sais que ce n'est pas la requête ...

// conseils?

Répondre

0

Doh! Lorsque je me connecte à mysql sur cette machine, ma chaîne de connexion contient une adresse IP./Tmp en ce qui concerne mysql est pas sur la machine que je suis connecté ...

donc je résolus problème en utilisant par exemple mysql -e:

mysql -h my.db.com -u usrname--password=pass db_name -e 'SELECT foo FROM bar' > /tmp/myfile.txt 
Questions connexes