2010-11-10 19 views
20

पर परिणाम परिणाम मैं MySQL में स्रोत कमांड का उपयोग कर foo.sql निष्पादित करने का प्रयास कर रहा हूं।आउटपुट MySQL स्रोत लॉग फ़ाइल

जब मैं आदेश लिखें, फ़ाइल तदनुसार प्राप्त किया जाता है:

mysql> source ~/foo.sql 

अब, देखते हैं बयानों का एक बहुत इस फ़ाइल में क्रियान्वित किया जा रहा है और मैं इन बयानों से सफलता/असफलता की समीक्षा करना चाहते हैं। क्या कोई तरीका है कि मैं बयान के परिणामों को लॉग फ़ाइल में पाइप कर सकता हूं, foo.txt?

मैं की तर्ज पर कुछ सोच रहा हूँ:

mysql> source ~/foo.sql into outfile ~/foo.txt 

हालांकि, इस आदेश टाइप स्रोत बयान निम्नलिखित है कि सब कुछ ग्रहण करने के लिए प्रकट होता है एक फ़ाइल नाम है; इसलिए यह '~/foo.sql नामक फ़ाइल को आउटफाइल ~/foo.txt' में स्रोत करने का प्रयास कर रहा है, जो स्पष्ट रूप से मौजूद नहीं है।

+0

क्या आपने 'पेजर' कमांड की जांच की है? – Konerak

उत्तर

37

अपने MySQL ग्राहक के भीतर से, प्रकार

tee session.out 

पर उस बिंदु से , आपके वर्तमान क्लाइंट सत्र में सभी I/O फ़ाइल 'session.out'

पर लिखे गए हैं
+0

धन्यवाद, यह वही था जो मैं खोज रहा था। – Isaac

+10

इसके अलावा, अगर आप आउटपुट को रोकना चाहते हैं, तो बस 'नोटी' ([स्रोत] टाइप करें (http://dev.mysql.com/doc/refman/5.0/en/mysql-commands.html)) –

+0

शानदार उत्तर! ! – Amol

4

आप सुरक्षा प्रॉम्प्ट से यह कर सकता है:

$ mysql -p dbname <foo.sql> foo.txt 
2

कमांड लाइन का उपयोग करें:

mysql -p dbname < ~/foo.sql > ~/foo.txt 
+0

मैंने कोशिश की, लेकिन उत्पन्न फाइल में कुछ भी नहीं है। – Isaac

+1

क्या डेटाबेस लोड लोड किया गया था जैसा कि आप चाहते थे? फ़ाइल में केवल त्रुटि संदेश जोड़े जाएंगे। ओह, यह पहली त्रुटि पर भी रुक जाएगा, जब तक कि आप इसे पिछली त्रुटियों को जारी रखने के लिए कमांड लाइन विकल्प न दें। – SorcyCat

+0

यह पहली बार त्रुटि के बिना पूरा हुआ। मैंने फिर कोशिश की और अपना max_allowed_packet 5M पर सेट किया ताकि यह जानबूझकर त्रुटि हो। इसे एक त्रुटि मिली लेकिन foo.txt ने इस त्रुटि को सूचीबद्ध नहीं किया था। – Isaac

संबंधित मुद्दे