MySQL में केवल संग्रहीत कार्यविधियाँ डंप करें


31

मुझे केवल संग्रहीत प्रक्रियाओं को डंप करने की आवश्यकता है: कोई डेटा नहीं, कोई तालिका निर्माण नहीं। मैं mysqldump का उपयोग कैसे कर सकता हूं?


1
इस सवाल के लिए +1 क्योंकि DB दुनिया में कई डेवलपर्स हैं जो संस्करण नियंत्रण सॉफ्टवेयर में MySQL के बाहर संग्रहीत प्रक्रियाओं को सूचीबद्ध करने की तरह है जो ऐसा करना चाहते हैं (मैं खुद ऐसा करने का प्रशंसक नहीं हूं)
RolandoMySQLDBA

मेरे मामले में यह आदेश मुझे एक त्रुटि देता है mysqldump: Got error: 23: "Out of resources when opening file"मेरे पास --single-transactionइस त्रुटि को हल करने का विकल्प था । और यदि आप केवल दिनचर्या चाहते हैं, तो आप जोड़ सकते हैं - -no-create-infoबनाएं तालिका विवरण से बचने के लिए।
बेडोमैन

जवाबों:


34

यह आपके लिए करना चाहिए:

mysqldump -h... -u... -p... -n -d -t --routines --triggers --all-databases > MySQLStoredProc.sql

  -n, --no-create-db     Suppress the CREATE DATABASE ... IF EXISTS statement 
                         that normally is output for each dumped database if
                         --all-databases or --databases is given.
  -d, --no-data          No row information.
  --triggers             Dump triggers for each dumped table.
                         (Defaults to on; use --skip-triggers to disable.)
  -R, --routines         Dump stored routines (functions and procedures).
  -t, --no-create-info   Do not write CREATE TABLE statements that create each 
                         dumped table.

चेतावनी

यह बहुत बेहतर होगा कि संग्रहीत प्रक्रियाओं को डेटाबेस से अलग न किया जाए, ताकि विशिष्ट संग्रहित प्रक्रियाएं उस डेटाबेस में बनाई जाए जिसके लिए वह था। वही ट्रिगर के लिए जाता है। यह बेहतर होगा:

mysqldump -h... -u... -p... -d --routines --triggers --all-databases > MySQLStoredProc.sql

9
मैंने इसे आज़माया और क्रिएट टेबल स्टेटमेंट न पाने के लिए '-t' विकल्प जोड़ना पड़ा।
डेरेक डाउनी

उस एक को भूल गए, बहुत बुरा मैं टिप्पणी नहीं कर सकता। मैंने इसे शामिल करने के लिए पहले mysqldump कमांड को अपडेट किया। दूसरे को हर ट्रिगर को उसके बेस टेबल से जोड़ना छोड़ देना चाहिए। धन्यवाद फिर से, @DTest !!!
रोलैंडमाइसीडीडीबीए

कोई बात नहीं। मेरे मामले में, मैं सिर्फ एक विशिष्ट डेटाबेस के लिए संग्रहीत कार्य / प्रक्रिया चाहता था, और ट्रिगर नहीं। इसलिए इसने अच्छी तरह से काम किया
डेरेक डाउनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.