2012-03-30 20 views
5

का उपयोग कर एक mySQL डेटाबेस के निर्यात को स्वचालित कैसे कर सकता हूं phpMyAdmin का उपयोग कर एक डीबी के निर्यात को स्वचालित करना संभव है?phpMyAdmin

जब मैं बाहरी स्क्रिप्ट से .sql फ़ाइल बनाने की कोशिश करता हूं, जैसे php, परिणामी .sql फ़ाइल साफ़ दिखती है, लेकिन आयात किए जाने पर एप्लिकेशन में समस्याएं होती हैं।

जब मैं निर्यात का उपयोग कर एक समान .sql फ़ाइल बनाने के लिए phpMyAdmin का उपयोग करता हूं, परिणामी .sql फ़ाइल आयात मेरे आवेदन में कोई समस्या उत्पन्न किए बिना आयात करता है।

एप्लिकेशन मूडल 2.2 है, MySQL संस्करण 5.5 है, phpMyAdmin संस्करण 3.4.10 है।

+1

मैंने इसे phpMyAdmin में चेक नहीं किया है, लेकिन शायद बेहतर समाधान क्रॉन नौकरी करेगा। – Dudeist

+0

मैं अपनी बाहरी स्क्रिप्ट को कॉल करने के लिए क्रॉन का उपयोग कर रहा हूं जो समस्याग्रस्त है, यही कारण है कि मैं सीधे phpMyAdmin से स्क्रिप्ट बनाना चाहता हूं। – jamesTheProgrammer

+0

आप MySQLBackupFTP (http://mysqlbackupftp.com/) को अपने phpMyAdmin से कनेक्ट कर सकते हैं और अपने डेटाबेस को स्वचालित रूप से बैकअप लेने के लिए शेड्यूल सेट कर सकते हैं। –

उत्तर

4

सबसे अच्छा विकल्प एक स्क्रिप्ट बनाना है जो mysqldump के साथ डेटाबेस निर्यात निष्पादित करता है और उसके बाद उस स्क्रिप्ट को निष्पादित करने के लिए cronjob।

+0

चूंकि मैं विंडोज 2003 सर्वर का उपयोग कर रहा हूं, क्रॉन स्क्रिप्ट का लाभ नहीं है। स्वचालित करने के लिए।मैंने क्रॉन, एटी के विंडोज संस्करण को पाया, जहां मैं कमांड लाइन से बताई गई थी, जहां मैं mysqldump का उपयोग करने में सक्षम था। – jamesTheProgrammer

+3

विंडोज़ में क्रोनबॉज को अनुसूचित टैक्स कहा जाता है। – edelgado

+0

यह तब तक बढ़िया काम करता है जब तक कि आप एक होस्टिंग कंपनी के साथ न हों जहां डीबी सर्वर का आईपी लोकलहोस्ट या कुछ [आरएफसी 1 9 18] (http://www.faqs.org/rfcs/rfc1918.html) पता और आपकी एकमात्र अन्य पहुंच है एफ़टीपी है फिर हमारे डेटाबेस में आपकी एकमात्र पहुंच phpMyAdmin है या होमग्राउन PHP स्क्रिप्ट के माध्यम से है, क्योंकि आप इंटरनेट से डीबी तक नहीं पहुंच सकते हैं। –

2

आप सीधे mysqldump के साथ डेटाबेस से कनेक्ट नहीं कर सकते हैं, तो आप इस खोल स्क्रिप्ट का उपयोग कर सकते (कर्ल की आवश्यकता है):

#!/bin/sh 
ADMIN_URL='https://phpmyadmin.example.com' 
USERNAME='my_username' 
PASSWORD='my_password' 
COOKIEJAR='/tmp/my_cookiejar' 
token=`curl -s -o - -d "pma_username=$USERNAME" -d "pma_password=$PASSWORD" -c "$COOKIEJAR" "$ADMIN_URL/" | grep -o -m 1 "token=.*'" | sed "s/'//"` 
curl -o - -b "$COOKIEJAR" -d what=sql -d export_type=server -d sql_structure_or_data=structure_and_data -d "$token" "$ADMIN_URL/export.php" 
rm "$COOKIEJAR" 

फिर अपने crontab में डाल दिया:

22  3 * * * someuser /path/to/script.sh > /path/to/backup/db.sql 

को हर रात 3:22 पर बैकअप लें।

केवल phpMyAdmin 3.4.10.1 के साथ परीक्षण किया गया है और अन्य (प्रमुख) संस्करणों में काम नहीं कर सकता है।

+0

ऐसा लगता है कि वी 4 फॉर्म में टोकन है इसलिए मुझे नहीं लगता कि यह काम करेगा ... हालांकि परीक्षण नहीं किया गया। – Nick

+0

इस पर कोई अपडेट? £ –

0

इस स्क्रिप्ट का उपयोग करें: https://github.com/qubitstream/phpmyadmin_sql_backup

phpmyadmin_sql_backup.py

एक अजगर 3 स्क्रिप्ट एक phpMyAdmin वेब इंटरफेस के माध्यम एसक्यूएल बैकअप के डाउनलोड को स्वचालित।

यह उपयोगी है जब अपने वेब होस्टिंग प्रदाता आप पहुँच कंसोल (mysqldump के लिए) प्रदान नहीं करता है, लेकिन आप (मैन्युअल रूप से ब्राउज़र का उपयोग किए बिना) अपने डेटाबेस की बैकअप स्वचालित करना चाहते हैं।

यह लिनक्स और विंडोज और phpMyAdmin 4.3.6, 4.5.4.1 और 4.7.0-देव

नोट पर पायथन 3.4+ के साथ परीक्षण किया गया है: phpMyAdmin की वेब इंटरफेस भविष्य और में बदल सकता है इस स्क्रिप्ट को तोड़ो। यदि आपको यह समस्या आती है तो कृपया एक बग रिपोर्ट दर्ज करें ( phpMyAdmin के अपने संस्करण सहित)।

उदाहरण:

phpmyadmin_sql_backup.py "http://www.example.com/phpmyadmin/" your_user your_password 

अन्य विकल्प उपलब्ध हैं।