Phpmyadmin में बड़ी sql फ़ाइल कैसे आयात करें


81

मैं लगभग 12 mb की एक sql फ़ाइल आयात करना चाहता हूँ। लेकिन लोड करते समय इसकी समस्या खड़ी हो जाती है। क्या sql फ़ाइल को विभाजित किए बिना इसे अपलोड करने का कोई तरीका है?


1
कुछ mysql टूल्स जैसे mysql workbenchयाmysql Yog
diEcho

आप इसे यहां stackoverflow.com/questions/9593128/… डन पर भी देख सकते हैं ।
गोबर

यदि आप mysql कंसोल का उपयोग नहीं कर सकते हैं, तो एक दिलचस्प समाधान है जो phpmyadmin प्रलेखन से आता है: ozerov.de/bigdump
पाओलो

जवाबों:


97

अपने OS के स्वाद के अनुसार इसे mysql कंसोल से आयात करने का प्रयास करें।

mysql -u {DB-USER-NAME} -p {DB-NAME} < {db.file.sql path}

या यदि यह किसी दूरस्थ सर्वर पर है तो -h ध्वज का उपयोग मेजबान को निर्दिष्ट करने के लिए करता है।

mysql -u {DB-USER-NAME} -h {MySQL-SERVER-HOST-NAME} -p {DB-NAME} < {db.file.sql path}

1
ठीक है, लोगों को वापस करने के लिए धन्यवाद। मैं php.ini में परिवर्तन करता हूं और फाइल को ज़िप करता हूं। यह मेरे लिए काम करता है :)
जसमीत कौर चौहान

3
ऐसा करने का सबसे तेज़ तरीका!
अरीस

1
यह एक बेहतरीन जवाब है। कोई भी व्यक्ति जो सुपर सेवी नहीं हो सकता है, आप बस अपनी DB फाइल को अपने होस्ट पर अपने फाइल मैनेजर पर अपलोड कर सकते हैं, फिर स्थानीय रूप से संचालित करने के लिए अपने होस्ट पर SSH का उपयोग कर सकते हैं। यह mysqlसिर्फ एक माइग्रेशन के लिए अपने सर्वर पर इंस्टॉल करने से बहुत आसान है । मदद के लिए बहुत शुक्रिया दोस्तों! (इसके अलावा, मुझे कोष्ठक की आवश्यकता नहीं थी)
DomainsFeatured

1
जो लोग सोच रहे हैं, आपको कमांड चलाने के लिए अपने MySQL / बिन फ़ोल्डर में ब्राउज़ करने की आवश्यकता है। बढ़िया काम किया। धन्यवाद।
एटिने दुपसुंस

1
इसके बारे में क्या उनके पास पासवर्ड नहीं है? डिफ़ॉल्ट उपयोगकर्ता नाम रूट के साथ डेटाबेस का उपयोग करना? इस कमांड का उपयोग करके यह पासवर्ड के लिए पूछ रहा है।
हक्छिया

68

3 चीजें जो आपको करनी हैं:

में php.iniअपने php स्थापना की (ध्यान दें: निर्भर करता है अगर आप इसे CLI, अपाचे, या nginx के लिए चाहते हैं, हेरफेर करने के लिए सही php.ini लगता है)

post_max_size=500M

upload_max_filesize=500M

memory_limit=900M

या अन्य मान सेट करें।

यदि आप नेजिन का उपयोग करते हैं तो नगक्स के लिए अपाचे स्थापित करें या पीएचपी-एफपीएम होने पर अपाचे को पुनः आरंभ / पुनः लोड करें।

रीमोट सर्वर?

max_execution_timeसाथ ही वृद्धि करें , क्योंकि फ़ाइल को अपलोड करने में समय लगेगा।

NGINX स्थापना?

: आप जोड़ना होगा client_max_body_size 912M;में /etc/nginx/nginx.confकरने के लिए http{...}ब्लॉक


3
सही उत्तर। वे 3 पंक्तियाँ थीं

इसे आपकी अपाचे निर्देशिका में जोड़ा जाना चाहिए, न कि cli निर्देशिका (कम से कम मेरे उबंटू बॉक्स पर परीक्षण किए गए) के रूप में
Bad_Neighbor

यह /etc/php/7.1/apache2/php.iniकाम नहीं करने के लिए बदल रहा है
W.Doch

@RickSanchez क्या आपको यकीन है कि आप Apache पर इस php संस्करण को चलाते हैं? कृपया चलाएँ phpinfo()और सत्यापित करें कि मान सही ढंग से सेट किए गए हैं और सर्वर को फिर से शुरू किया गया है
टॉस्कन

1
Php ini में अधिकतम_execution_time मान बढ़ाने और अपाचे को फिर से शुरू करने के लिए मत भूलना
hamboy75

62

Phpmyadmin निर्देशिका में स्थित config.inc.php फ़ाइल को संपादित करें। मेरे मामले में यह स्थित हैC:\wamp\apps\phpmyadmin3.2.0.1\config.inc.php

के साथ लाइन का पता लगाएं $cfg['UploadDir']इसके और इसे अपडेट करें$cfg['UploadDir'] = 'upload';

फिर, phpmyadmin निर्देशिका (मेरे लिए, पर) के भीतर 'अपलोड' नामक एक निर्देशिका बनाएँ C:\wamp\apps\phpmyadmin3.2.0.1\upload\ ) के ।

फिर बड़ी SQL फ़ाइल रखें जिसे आप नए में आयात करने का प्रयास कर रहे हैं upload निर्देशिका । अब जब आप phpmyadmin कंसोल के भीतर db आयात पृष्ठ पर जाते हैं, तो आप एक ड्रॉप डाउन को पेश करेंगे जो कि पहले नहीं था - इसमें अपलोड निर्देशिका में सभी sql फाइलें हैं जो आपने अभी बनाई हैं। अब आप इसे चुन सकते हैं और आयात शुरू कर सकते हैं।

यदि आप विंडोज पर WAMP का उपयोग नहीं कर रहे हैं, तो मुझे यकीन है कि आप बहुत अधिक परेशानी के बिना इसे अपने वातावरण में अनुकूलित कर पाएंगे।

संदर्भ: http://daipratt.co.uk/importing-large-files-into-mysql-with-phpmyadmin/comment-page-4/


5
PhpMyAdmin के अधिक हाल के संस्करणों के साथ, $ cfg ['UploadDir'] var बिल्कुल नहीं है; हालाँकि, यह समाधान अभी भी फ़ाइल में एक नई लाइन पर केवल वर्जन जोड़कर काम करता है।
दिन

इस config.default.phpसंस्करण को उसी dir में पाया जाता है , मैं phpmyadmin संस्करण 4.6.4 का उपयोग कर रहा हूं
KAD

1
पिछली टिप्पणी को अब संपादित नहीं किया जा सका, dir हैlibraries/config.default.php
KAD

विफलता के परिणामों के साथ MySQL कमांड लाइन की कोशिश कर दो दिन बिताने के बाद अद्भुत समाधान।
Youhana

22

LINUX USERS के लिए समाधान (sudo के साथ चलाएं)

'अपलोड' और 'सेव' डायरेक्टरी बनाएँ:

mkdir /etc/phpmyadmin/upload
mkdir /etc/phpmyadmin/save
chmod a+w /etc/phpmyadmin/upload
chmod a+w /etc/phpmyadmin/save

फिर phpmyadmin की कॉन्फिग फाइल को एडिट करें:

gedit /etc/phpmyadmin/config.inc.php

अंत में 'अपलोड' और 'सेव' डायरेक्टरी दोनों के लिए पूर्ण पथ जोड़ें:

$cfg['UploadDir'] = '/etc/phpmyadmin/upload';
$cfg['SaveDir'] = '/etc/phpmyadmin/save';

अब, बस फाइलों को /etc/phpmyadmin/uploadफ़ोल्डर पर छोड़ दें और फिर आप उन्हें phpmyadmin से चुन सकेंगे।

यहाँ छवि विवरण दर्ज करें

उममीद है कि इससे मदद मिलेगी।


इस विधि के साथ phpmyadmin मुझे एक File could not be read!संदेश दे रहा है जब मैं अपलोड फॉर्म पर सबमिट बटन पर क्लिक करता हूं। अब इस समस्या निवारण के बीच में।

@JoeRocc आप अपने मुद्दे के लिए एक समाधान मिल गया? शायद यह एक अनुमति या स्वामित्व की समस्या है। के साथ प्रयास करेंsudo chmod 777 your-filename.sql
गुइले

2
775. 777 नहीं। एक जीवित सर्वर पर काम करने के लिए किसी को 777 सेट करने की सलाह नहीं देनी चाहिए। इसमें सुरक्षा के मुद्दे हैं।
कौशिक दास

15

बस एक पंक्ति और आप कर रहे हैं (सुनिश्चित करें कि mysql कमांड वैश्विक रूप में उपलब्ध है या बस mysql स्थापना फ़ोल्डर में जाएं और बिन फ़ोल्डर में प्रवेश करें)

mysql -u database_user_name -p -D database_name < complete_file_path_with_file_name_and_extension 

यहाँ

  • u उपयोगकर्ता के लिए खड़ा है
  • p पासवर्ड के लिए खड़ा है
  • D डेटाबेस के लिए खड़ा है

--- इस <नाम के नाम पर हस्ताक्षर करने के लिए साइन न करें ---

नाम और एक्सटेंशन के साथ पूर्ण फ़ाइल पथ हो सकता है

c:\folder_name\"folder name"\sql_file.sql

--- यदि आपका फ़ोल्डर और फ़ाइल का नाम पता है, तो आपको यह बहुत छोटा है ---

टिप और नोट: आप अपना पासवर्ड लिख सकते हैं, -pलेकिन इसके बाद इसकी अनुशंसा नहीं की जाती है क्योंकि यह उन लोगों को दिखाई देगा, जो उस समय आपकी स्क्रीन देख रहे हैं, यदि आप वहां नहीं लिखते हैं तो यह आपसे पूछेगा कि आप एंटर दबाकर कमांड कब निष्पादित करेंगे।



7

मैं .sqlफ़ाइल में निम्न कॉन्फ़िगरेशन होने से एक बड़ी फ़ाइल आयात करने में सक्षम था httpd.conf:

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
    AllowOverride AuthConfig
    Require all granted

    php_admin_value upload_max_filesize 128M
    php_admin_value post_max_size 128M
    php_admin_value max_execution_time 360
    php_admin_value max_input_time 360
</Directory>

4

आपको php.ini फाइल को एडिट करना होगा। upload_max_filesize post_max_sizeअपनी फ़ाइल का आकार समायोजित करने के लिए निम्नलिखित को बदलें ।

phpinfo()उनके वर्तमान मूल्य को देखने के लिए चल रहा है। यदि आप php.ini फ़ाइल को बदलने की स्वतंत्रता में नहीं हैं, तो सीधे ini_set () का प्रयास करें

यदि वह भी एक विकल्प नहीं है, तो आप बिगडम्प को एक कोशिश देना पसंद कर सकते हैं ।


4

मुझे समझ में नहीं आया कि किसी ने सबसे आसान तरीका क्यों नहीं बताया .... बस http://www.rusiczki.net/2007/01/24/sql-dump-file-splitter/ के साथ बड़ी फ़ाइल को विभाजित करें और बस vie mySQL व्यवस्थापक को निष्पादित करें अलग-अलग जेनरेट की गई फाइलें स्ट्रक्चर से एक से शुरू होती हैं


3

उसके लिए आपको php.iniफाइल को एडिट करना होगा , यदि आप ubuntu सर्वर का उपयोग कर रहे हैं तो यह लिंक है अपलोड करें बड़ी फाइल phpMyAdmin में आपकी मदद कर सकती है।


धन्यवाद, यह एकदम सही था।
मोर्टेजा सेफ़हरी निया

2

मैं एक लेख पर ठोकर खाई और यह मेरे लिए सबसे अच्छा काम किया

  1. अपने पसंदीदा कोड संपादक के साथ phpmyadmin dir के भीतर config.inc.php फ़ाइल खोलें। आपके स्थानीय MAMP वातावरण में, यह यहाँ स्थित होना चाहिए:

हार्ड ड्राइव »अनुप्रयोग» MAMP »बिन» config.inc.php

  1. वाक्यांश के लिए एक खोज करें $cfg[‘UploadDir’]- यह इस तरह दिखने वाला है:

$cfg['UploadDir'] = '';

  1. इसे इस तरह बदलें:

$cfg['UploadDir'] = 'upload';

  1. फिर, उस phpmyadmin dir के भीतर, एक नया फ़ोल्डर बनाएं और उसे अपलोड करें।

  2. उस बड़ी .sql फ़ाइल को लें जिसे आप आयात करने का प्रयास कर रहे हैं, और उसे उस नए अपलोड फ़ोल्डर में डालें।

  3. अब, अगली बार जब आप किसी डेटाबेस को phpMyAdmin में आयात करने के लिए जाते हैं, तो आपको अपने "फ़ाइल से आयात" अनुभाग में मानक ब्राउज़ क्षेत्र के ठीक नीचे एक नया ड्रॉपडाउन फ़ील्ड दिखाई देगा।


2

ठीक है आप PHPMyAdmin का उपयोग करें लेकिन कभी-कभी टर्मिनल के माध्यम से सबसे अच्छा तरीका है:

  • डेटाबेस से कनेक्ट करें: mysql -h localhost -u root -p(उपयोगकर्ता और डेटाबेस स्थान के लिए रूट और लोकलहोस्ट स्विच करें)
  • डंप से आयात शुरू करें: \. /path/to/your/file.sql
  • जाओ एक ताबूत ले लो और अपने बारे में बड़ाई क्योंकि तुम टर्मिनल का उपयोग करें।

और बस। बस याद रखें कि यदि आप एक दूरस्थ सर्वर में हैं, तो आपको कुछ फ़ोल्डर में .sql फ़ाइल अपलोड करनी होगी।


2

साझा होस्टिंग के साथ उन लोगों के लिए जवाब। इस छोटी स्क्रिप्ट का उपयोग करने के लिए सबसे अच्छा जो मैं सिर्फ अपने सर्वर पर एक 300mb DB फ़ाइल आयात करने के लिए उपयोग करता था। स्क्रिप्ट को बिग डंप कहा जाता है।

संसाधन-सीमित सर्वर पर बड़े DB के आयात के लिए एक स्क्रिप्ट प्रदान करता है


यह वास्तव में अच्छा समाधान है, लेकिन URL के कारण आप डाउनवोट हो गए जो कि एक दिन अमान्य हो सकता है। कृपया इस स्क्रिप्ट के बारे में कुछ जानकारी जोड़ें, इसके बारे में संक्षिप्त रूप से बताएं।
बजाय

इसका बड़ा डंप कहा जाता है यह SQL सर्वर को रोक देता है या सर्वर में एक बड़े डेटाबेस फ़ाइल को आयात करते समय बाधित होता है। btw वहाँ url के साथ अन्य उत्तर हैं जो किसी भी समय नीचे हो सकते हैं और उनमें से कोई भी नीचे नहीं है
c0d3x1337

2

MAMP में, आप निम्न फ़ाइलों को लोड कर सकते हैं:

  1. इस निर्देशिका में एक नया फ़ोल्डर बनाना / MAMP / bin / phpMyAdmin / "folderName"

  2. और फिर "/MAMP/bin/phpMyAdmin/config.inc.php" पंक्ति 531 संपादित करें:

       $cfg['UploadDir']= 'folderName';   
    
  3. इस फ़ोल्डर में अपने .sql या .csv फ़ाइलों को कॉपी करें।

  4. अब आपके पास "PhpMyAdmin" में एक और विकल्प होगा: वेब सर्वर अपलोड निर्देशिका newFolder / से चुनें: आप अपनी फ़ाइल का चयन कर सकते हैं और इसे आयात कर सकते हैं।

    अब आप किसी भी फ़ाइल को लोड कर सकते हैं !!


1

एक बड़ी फ़ाइल अपलोड करने का सबसे अच्छा तरीका phpmyadmin का उपयोग न करें। पहले phpmyadin को अपलोड करें क्योंकि php अपलोड वर्ग का उपयोग करके फ़ाइल को अपलोड करें और तब sql निष्पादित करें जिससे अधिकांश समय उसका समय समाप्त हो गया हो।

सबसे अच्छा तरीका है: wamp फ़ोल्डर दर्ज करें> बिन> mysql> बिन dirrectory फिर इस लाइन को लिखें

mysql -u root -p listnames <latestdb.sql यहाँ listnames डेटाबेस नाम है कृपया पहले खाली डेटाबेस बनाएँ और latestdb.sql आपका sql फ़ाइल नाम है जहाँ आपका डेटा मौजूद है।

लेकिन एक महत्वपूर्ण बात यह है कि यदि आपके डेटाबेस फ़ाइल में यूनिकोड डेटा है। आपको अपनी नवीनतमdb.sql फ़ाइल और किसी भी लाइन से पहले एक लाइन खोलने की आवश्यकता होगी। लाइन है:

सेट NAMES utf8; तब आपका कमांड मोड इस स्क्रिप्ट कोड को चलाता है


1
  1. एक टेक्स्ट एडिटर में अपनी sql फ़ाइल खोलें (जैसे नोटपैड)
  2. सभी का चयन करें -> कॉपी करें
  3. PhpMyAdmin पर जाएं, अपना डेटाबेस चुनें और SQL टैब पर जाएं
  4. क्लिपबोर्ड में आपके द्वारा कॉपी की गई सामग्री को चिपकाएँ
  5. यह एक जावास्क्रिप्ट त्रुटि को पॉपअप कर सकता है, इसे अनदेखा कर सकता है
  6. निष्पादित

अच्छी प्रैक्टिस नहीं! जब आप ऐसा करते हैं तो बड़े ग्रंथ बड़ी समस्या पैदा करेंगे। Mysql के माध्यम से बड़े आयात या आयात की अनुमति देने के लिए php.ini को सर्वोत्तम तरीके से कॉन्फ़िगर किया गया है।
Marcelo Agimóvel

0

फ़ाइल सर्वर को 12 mb से बड़े अपलोड की अनुमति देने के लिए अपनी सर्वर सेटिंग्स बदलें और आपको ठीक होना चाहिए। आमतौर पर सर्वर सेटिंग्स फ़ाइल अपलोड के लिए 5 से 8 mb पर सेट की जाती हैं।


1
यह प्रश्न का उत्तर प्रदान नहीं करता है। किसी लेखक से स्पष्टीकरण की आलोचना या अनुरोध करने के लिए, उनके पोस्ट के नीचे एक टिप्पणी छोड़ दें। - रिव्यू से
सेबेस्टियन ब्रोश

1
वास्तव में जिस समय यह उत्तर पोस्ट किया गया था, यह सबसे आम त्रुटि (3 साल पहले) थी जो फ़ाइल अपलोड डिफ़ॉल्ट रूप से बड़ी नहीं थी। वह phpmyadmin == webinterface का उपयोग कर रहा है। आयात == डिस्क से अपलोड करें। अपलोड == सर्वर सेटिंग्स। सर्वर सेटिंग == डिफॉल्ट जो 3 साल पहले 5 या 8 एमबी पर है। इसलिए मैं यह नहीं देखता कि यह उत्तर कैसे प्रदान नहीं करता है। हां, मैंने उसे हाथ से नहीं दिखाया कि कैसे वास्तव में सेट अप करने के लिए वह प्रदान नहीं करता है कि वह किस सर्वर का उपयोग कर रहा है, अपाचे, एनक्सिक्स, आईआईएस, अन्य।
8 अगस्त को Tschallacka

0

एक समाधान कमांड लाइन का उपयोग करना है;

mysql -h yourhostname -u username -p databasename < yoursqlfile.sql

बस SQL फ़ाइल को आयात करने के लिए पथ स्पष्ट रूप से कहा गया है सुनिश्चित करें ।

मेरे मामले में, मैंने इसका इस्तेमाल किया;

mysql -h localhost -u root -p databasename < /home/ejalee/dumps/mysqlfile.sql

वोइला! तुम तैयार हो।


0

मैंने एक PHP स्क्रिप्ट बनाई है जिसे बड़े डेटाबेस डंप आयात करने के लिए डिज़ाइन किया गया है जो कि phpmyadmin द्वारा उत्पन्न किया गया है। इसे पेटीएम कहा जाता है और आप इसे यहाँ डाउनलोड कर सकते हैं [परियोजना पृष्ठ] [गिट्लाब पृष्ठ] । इसका परीक्षण 1GB डेटाबेस के साथ किया गया है।


0

PHPmyadmin भी gzip प्रारूप में संपीड़ित फ़ाइलों को स्वीकार करता है, इसलिए आप फ़ाइल को gzip कर सकते हैं ( यदि आपके पास कोई है तो 7Zip का उपयोग करें ) और ज़िप की गई फ़ाइल अपलोड करें। इसकी पाठ फ़ाइल के बाद से, यह एक अच्छा सेक अनुपात होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.