Frage

(Siehe meine Antwort unten. Lassen Sie dies für den Fall, dass es jemand anderem hilft.)

Was folgt, ist eine Reihe von Versuchen, eine Abfrage in ein Outfile in einem neuen FreeBSD -Box zu werfen, auf den meine Website bewegt ist. Die Ergebnisse sind gleich, wenn ich mich als ich anmelde oder wenn ich mich als Root anmelde. Ich hoffe, der Stil ist nicht zu nervig. Ich habe meine Kommentare um den tatsächlichen Code und die tatsächliche Ausgabe kommentiert.

// Versuche, Abfragen in mein Zuhause zu werfen

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)

// versuchte zuerst die Datei zu erstellen mit touch und sogar chmod 077 Datei //, aber der gleiche Fehler jedes Mal

// ok, lasst es uns versuchen /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)

// Schauen wir uns die Datei an

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

// Melden Sie sich in MySQL zurück und versuchen Sie es erneut mit derselben Abfrage

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

// keine Datei x.

// Wenn ich Abfrage ohne Outfile ausführe, sehe ich 24000 Zeilen von

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

// Ich weiß also, dass es nicht die Abfrage ist ...

// Rat?

War es hilfreich?

Lösung

Doh! Wenn ich mich in MySQL auf diesem Computer anmelde, enthält meine Verbindungszeichenfolge eine IP -Adresse. /TMP, was MySQL betrifft, ist nicht auf der Maschine, in die ich angemeldet bin ...

Also habe ich das Problem durch Verwendung gelöst mysql -e z.B:

mysql -h my.db.com -u usrname--password=pass db_name -e 'SELECT foo FROM bar' > /tmp/myfile.txt
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top