MySQL

2012-01-04 17 views
13

में वीआई का उपयोग करके खोई गई फ़ाइल पुनर्प्राप्त करें मैं जानना चाहता हूं कि MySQL में Vi का उपयोग करके फ़ाइल को पुनर्प्राप्त कैसे करें। मैं का उपयोग करने में लॉग इन किया है:MySQL

mysql -uuser -p -hserver -A database 

तो मैं कार्य करें:

\e 

संपादक खोलता है और मैं 200 लाइनों की मेरी क्वेरी टाइप करें, तो मैं :wq और \G (अगर मैं फ़ाइल को सहेजने यह कहते हैं: /tmp/sql9SbYQZ saved) और मैं परिणाम देखता हूं।

अब, अगर मैं कोई गलती करता हूं या एक अलग क्वेरी चलाता हूं और मैं \e टाइप करने का प्रयास करता हूं, तो क्वेरी खो जाती है।

ll /tmp/sql9SbYQZ 
ls: /tmp/sql9SbYQZ: No such file or directory 

क्या खोए गए फ़ाइल को पुनर्प्राप्त करने का कोई तरीका है?

लिनक्स में, निम्न करें

$ cd 
$ cp .mysql_history mystuff.txt 
$ vi mystuff.txt 

आप फ़ाइल .mysql_history देखना चाहिए:

उत्तर

30

यहां मैंने अपनी गलती की स्थिति में वर्तमान क्वेरी को सहेजने के लिए अपने .vimrc में जो जोड़ा है, वह यहां दिया गया है।

nmap <F7> :w! /tmp/query.sql\| wq!<CR> 

यह F7 कुंजी (आप इसे निश्चित रूप से बदल सकते हैं) के लिए एक नक्शा बना देगा। इसलिए हर बार जब आप edit या \e का उपयोग करते हुए फ़ाइल खोलते हैं, तो आप इसे F7 कुंजी का उपयोग करते हैं।

यह आपकी वर्तमान क्वेरी का बैकअप /tmp/query.sql पर सहेज देगा और फिर अस्थायी फ़ाइल को सहेज और बंद कर देगा। इस तरह, यदि आप कोई गलती करते हैं, तो आप बस बैकअप फ़ाइल को फिर से खोलें और पुनः प्रयास करें।

यहां एक लिंक भी है जो आपको पसंद हो सकता है: http://vim.wikia.com/wiki/Open_the_last_edited_file

0

यहाँ कुछ तुम कोशिश कर सकते है। MySQL क्लाइंट निष्पादित सभी प्रश्नों और आदेशों को रिकॉर्ड करता है। उम्मीद है कि आपकी क्वेरी वहां है।

इसे आज़माएं !!!

1

mysql, crontab, और कई अन्य लोगों के साथ उपयोग किए गए vi/m संपादक के साथ, यह काम एक tmp फ़ाइल में किया जाता है, जैसा कि आप अपने संदेशों से देखते हैं।

संपादित (बिग doah !, ls के बारे में cruft हटाने -l/tmp/... आप पहले से ही किया था कि!)

भविष्य समाधान w एक करने के लिए बफर करने के लिए vim बताने के लिए है में अपने chosing के फ़ाइल नाम, यानी

w! /home/you/scripts/mysql2.sql 

फिर साथ

q 

नोट आप नहीं हो सकता nee संपादक को बंद डब्ल्यू के बाद ! डी।

मुझे उम्मीद है कि इससे मदद मिलती है।