Ubuntu 14.04 पर MySQL 5.6 की स्थापना विफल क्यों हुई?


30

मैं उबंटू 14.04 पर MySQL 5.6 पर एक नज़र डालना चाहता था। और इस लेख के आधार पर यह निश्चित रूप से लग रहा था कि स्थापना सरल और सीधी होनी चाहिए। इसलिए मैंने Ubuntu 14.04 (64-बिट) पर चलने वाले AWS EC2 माइक्रो सर्वर को निकाल दिया, अपने प्राचीन उदाहरण (PuTTY के माध्यम से) में लॉग इन किया, और निम्न आदेश जारी किए:

$ sudo apt-get update
$ sudo apt-get build-dep mysql-server-5.6
$ sudo apt-get install mysql-server-5.6

(पहले दो कमांड हताशा की चाल थे, क्योंकि केवल apt-get installअकेले चलने से पहले काम नहीं किया गया था। लेकिन सभी तीन कमांडों के साथ, अभी भी स्थापित कदम काम नहीं किया।)

इस बिंदु पर जहां मुझे उम्मीद थी, ऊपर दिए गए लेख के आधार पर, अंतिम आउटपुट से इस आउटपुट को देखने के लिए:

mysql start/running, process 2355  
Setting up libhtml-template-perl (2.95-1) ...  
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...  
Processing triggers for libc-bin (2.19-0ubuntu6) ...  
Processing triggers for ureadahead (0.100.0-16) ...  

मुझे इसके बजाय यह मिला:

start: Job failed to start  
invoke-rc.d: initscript mysql, action "start" failed.  
dpkg: error processing package mysql-server-5.6 (--configure):  
 subprocess installed post-installation script returned error exit status 1  
Setting up libhtml-template-perl (2.95-1) ...  
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...  
Processing triggers for libc-bin (2.19-0ubuntu6) ...  
Processing triggers for ureadahead (0.100.0-16) ...  
Errors were encountered while processing:  
 mysql-server-5.6  
E: Sub-process /usr/bin/dpkg returned an error code (1)

क्या कोई देख सकता है कि क्या गलत हुआ?


1
लॉग क्या कहता है? cat /var/log/mysql.err
Paté

जवाबों:


22

आपको जो समस्या हो रही है, वही इस बग रिपोर्ट की तरह दिखती है । शुरू करने में विफलता इसलिए लगती है क्योंकि डिफ़ॉल्ट MySQL 5.6 कॉन्फ़िगरेशन को आपके माइक्रो इंस्टेंस में प्राप्त होने की तुलना में अधिक मेमोरी की आवश्यकता होती है।

निम्न में से एक करने के लिए त्रुटि का समाधान प्रतीत होता है:

  • अपने EC2 उदाहरण में मेमोरी की मात्रा बढ़ाएँ
  • MySQL के max_connectionsचर के लिए एक छोटा मान सेट करें

1
हां, यह समस्या उस बग रिपोर्ट में दिखाई गई त्रुटि है। धन्यवाद! अब तक मैंने सुझाए गए त्वरित सुधार की कोशिश की, जो यह सुनिश्चित करने के लिए था कि /etc/apparmor.d/local/usr.sbin.mysqld मौजूद था, और दुर्भाग्य से ऐसा नहीं किया। इसलिए अब मैं अधिक मेमोरी वाले इंस्टॉलेशन की कोशिश करूंगा।
वेबलाइनर

1
अगली कोशिश के लिए, EC2 इंस्टेंस का उपयोग करने के बजाय, मैंने Oracle Ubuntu वर्चुअलबॉक्स का उपयोग करके 2GB मेमोरी के साथ एक Ubuntu 14.04 वर्चुअल मशीन बनाई और इस वातावरण में MySQL 5.6 इंस्टॉलेशन बिना किसी अड़चन के उपयोग के माध्यम से रवाना हुआ sudo apt-get install mysql-server-5.6। तो यह निश्चित रूप से प्रतीत होता है कि EC2 माइक्रो इंस्टेंस में पर्याप्त मेमोरी नहीं है जो MySQL 5.6 को apt-get का उपयोग करके स्थापित करने के लिए है!
वेबलेंसर

1
बग रिपोर्ट में एक अतिरिक्त टिप्पणी जोड़ी गई थी जिसमें MySQL 5.6 को स्थापित करने से पहले MySQL के अधिकतम_कनेक्ट को कम करने का सुझाव दिया गया था। मैंने वह सलाह ली और एक .cnf फ़ाइल को /etc/mysql/conf.d में जोड़ा, जिसमें दो लाइनें थीं: "[mysqld]" और "max_connections = 20"। जगह में उस फ़ाइल के साथ, एक ताजा EC2 माइक्रो पर मेरा MySQL स्थापना के माध्यम से रवाना हुए। (प्रलेखन के अनुसार, max_connections के लिए डिफ़ॉल्ट मान 151 है। इसे 20 तक सेट करना संभवतः चरम है। लेकिन कम से कम यह दर्शाता है कि MySQL को स्थापित करना संभव है।)
वेबलर्नर

अतिरिक्त जानकारी के लिए: मैं /var/lib/dpkg/info/mysql-server-5.6.postinst चेक करता हूं और मैंने पाया कि आप असफल होने वाले सटीक चरणों को पुन: उत्पन्न करने के लिए उस स्क्रिप्ट को चला सकते हैं
शकरन

यह मेरी योनि पर काम कर रहा है, मैंने 1G रैम सेट किया है और इसे ठीक किया है। धन्यवाद। : डी
चू-सियांग लाइ

24

जब मैं अपने छोटे VPS init करता हूं तो मुझे उसी समस्या का सामना करना पड़ता है। मुद्दा छोटी मेमोरी के कारण होता है। तो अतिरिक्त पैसे खर्च किए बिना मेमोरी को बढ़ाने के लिए जिसकी आपको आवश्यकता नहीं थी, आप बस स्थापना के लिए स्वैप फाइल बना सकते हैं। हां स्वैप धीमा है, लेकिन आप सभी को स्थापित करने की आवश्यकता है।

Ubuntu 14.04 पर, मैं इस समस्या को हल करने के लिए निम्न कार्य करता हूं:

4 जी स्वैप फाइल बनाएं:

sudo fallocate -l 4G /swapfile

केवल रूट तक इसकी अनुमति बदलें और पहुंच बदल सकती है:

sudo chmod 600 /swapfile

इसे स्वैप करें:

sudo mkswap /swapfile

सक्रिय:

sudo swapon /swapfile

अब आप फिर से mysql को स्थापित करने का प्रयास कर सकते हैं, इस बार इसे सफलता मिलनी चाहिए। बस ऐसा करने से पहले पिछली असफल स्थापना को हटाने के लिए याद रखें।


हाँ, सही जवाब। पूर्ण रूप से बहुत अच्छा।
रेन

3

मैंने उसी समस्या का सामना किया है। हालांकि मेरे पास अपने वीएम को दी गई बड़ी मेमोरी 12Gb थी, लेकिन फिर भी चीजें प्रश्न के रूप में विफल हो रही थीं। कुछ समय बिताने के बाद पाया गया कि डिफॉल्ट एप्टीट कॉन्फिगरेशन ट्रांसलेशन और टूल ट्रांसलेशन पैकेजों में से कुछ गायब था।

MySQL एप रिपॉजिटरी नवीनतम सॉफ्टवेयर पैकेजों के साथ MySQL उत्पादों को स्थापित और अद्यतन करने के लिए एक सरल और सुविधाजनक तरीका प्रदान करता है apt-get। यहाँ आपको अनुसरण करना है:

  1. MySQL APT रिपोजिटरी को जोड़ना पहले MySQL एप रिपोजिटरी को अपने सिस्टम के सॉफ्टवेयर रिपॉजिटरी सूची में जोड़ें। इन कदमों का अनुसरण करें:

    • पर MySQL उपयुक्त भंडार के लिए डाउनलोड पृष्ठ पर जाएं http://dev.mysql.com/downloads/repo/apt/

    • रिलीज़ पैकेज चुनें और डाउनलोड करें।

    • डाउनलोड किए गए रिलीज़ पैकेज को निम्न कमांड के साथ स्थापित करें, डाउनलोड किए गए पैकेज के नाम के साथ संस्करण-विशिष्ट-पैकेज-नाम को प्रतिस्थापित करें (यदि आप पैकेज जहां है, तो आप फ़ोल्डर के अंदर कमांड नहीं चला रहे हैं:)

      sudo dpkg -i /PATH/version-specific-package-name.deb
      

    ध्यान दें कि एक ही पैकेज सभी समर्थित डेबियन और उबंटू प्लेटफार्मों पर काम करता है।

    • पैकेज की स्थापना के दौरान, आपको MySQL सर्वर और अन्य घटकों (उदाहरण के लिए, MySQL कार्यक्षेत्र) के संस्करणों को चुनने के लिए कहा जाएगा, जिन्हें आप इंस्टॉल करना चाहते हैं। यदि आप सुनिश्चित नहीं हैं कि किस संस्करण को चुनना है, तो आपके लिए चुने गए डिफ़ॉल्ट विकल्पों को न बदलें। यदि आप कोई विशेष घटक स्थापित नहीं करना चाहते हैं तो आप कोई भी नहीं चुन सकते हैं। सभी घटकों के लिए विकल्प बनाने के बाद, रिलीज़ पैकेज के कॉन्फ़िगरेशन और स्थापना को समाप्त करने के लिए ठीक चुनें।

    आप बाद में संस्करणों के लिए हमेशा अपनी पसंद बदल सकते हैं;
    निर्देशों के लिए एक प्रमुख रिलीज़ संस्करण का चयन करना देखें।

    • निम्न आदेश के साथ MySQL APT रिपॉजिटरी से पैकेज जानकारी अपडेट करें (यह कदम अनिवार्य है):

      sudo apt-get update
      
  2. APT के साथ MySQL स्थापित करना

    • निम्नलिखित कमांड द्वारा MySQL स्थापित करें:

      sudo apt-get install mysql-server
      

यह MySQL सर्वर के लिए पैकेज, साथ ही क्लाइंट के लिए और डेटाबेस सामान्य फ़ाइलों के लिए पैकेज स्थापित करता है।

स्थापना के दौरान, संवाद बॉक्स द्वारा दो अनुरोध हैं: अपने MySQL स्थापना के लिए रूट उपयोगकर्ता के लिए एक पासवर्ड की आपूर्ति करें।

  1. MySQL सर्वर को शुरू करना और रोकना

MySQL सर्वर इंस्टॉलेशन के बाद अपने आप शुरू हो जाता है। - आप निम्न कमांड के साथ MySQL सर्वर की स्थिति की जांच कर सकते हैं:

sudo service mysql status
  • निम्न आदेश के साथ MySQL सर्वर बंद करें:

    sudo service mysql stop
    
  • MySQL सर्वर को पुनरारंभ करने के लिए, निम्न कमांड का उपयोग करें:

    sudo service mysql start
    

मैंने इसके बाद http://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install का अनुसरण किया । इसने आसानी से काम किया और सभी पैकेजों को डाउनलोड किया और सफलतापूर्वक स्थापित किया mysql 5.6


धन्यवाद डेविड। यह समझ में आता है। मैंने उत्तर को और अधिक विस्तृत चरणों में बदल दिया है। धन्यवाद।
रितेश

बेहतर जवाब के लिए +1।
डेविड फ़ॉस्टर

पिछले मैं था ... यह वास्तव में मुझे है? :)
स्विफ्ट

2

मेरे मामले में मैंने जोड़ा है

innodb_buffer_pool_size = 20M

को /etc/mysql/my.cnf


1
उपयोगकर्ता को MySQL स्थापित करने में समस्या आ रही है, इसका उपयोग नहीं कर रहा है।

धन्यवाद, मैंने प्रश्न पढ़ा है) स्थापना के दौरान मुझे भी यही समस्या आई। वास्तव में स्थापना समाप्त हो गई और mysql पहले से ही सेवा के रूप में सुलभ है, और हम इसे चला सकते हैं। लेकिन स्थापित करने की प्रक्रिया के अंतिम चरण (mysqld को शुरू करने पर) हम इस कष्टप्रद त्रुटि को पकड़ लेते हैं।
मैक्कोरिकोव

1

Performance_schema को अक्षम करने से बहुत सी मेमोरी भी बच जाती है। मेरा खाली डेटाबेस स्टार्टअप पर 400 मीटर से 40 मीटर तक जा रहा है:

performance_schema=0

MySQL डॉक्स: http://dev.mysql.com/doc/refman/5.6/en/performance-schema.html


1

मुझे इस मुद्दे पर १५.१० पर उबंटू का सामना करना पड़ा। मेरे लिए यह कोई मेमोरी इश्यू नहीं था (मेरे पास 2GB रैम और 18GB स्वैप है, जिसमें से केवल 300MB का ही इस्तेमाल किया गया था)।

मेरे मामले में, dpkgकी तलाश थी /etc/mysql/conf.d, जो मौजूद नहीं थी (हालांकि /etc/mysql/mysql.conf.dकिया था!)। Mysql को पुनर्स्थापित करना और मैन्युअल रूप से फ़ोल्डर बनाना /etc/mysql/conf.dमेरी समस्या को हल करता है।

यह वास्तव में कैसे हुआ? मुझे पता नहीं है। मैं लगभग अपना जवाब साझा नहीं करना चाहता था, क्योंकि मैं शर्त लगाता हूं कि यह समाधान मेरे कंप्यूटर के लिए विशिष्ट है।

मैंने इस मुद्दे को उपयोगिता का उपयोग करके हल किया strace, जो इस तरह की चीज के लिए शानदार है, अगर अविश्वसनीय रूप से क्रिया।

मैंने इसे इस तरह इस्तेमाल किया:

  • ctrlcआधे रास्ते को दबाने के बाद apt-get install mysql-server, मुझे dpkg --configure -aस्थापित करने के लिए दौड़ना पड़ा ।

  • मैं भागा strace 2>/tmp/trace dpkg --configure -a। इसने मुझे एक अच्छा straceलॉग बनाया /tmp/trace

  • मैंने लॉग के माध्यम से देखा, विशेष रूप से नीचे, जहां यह विफल रहा।

  • मैंने देखा कि इसने एक्सेस करने की कोशिश की /etc/mysql/conf.d, और त्रुटि कोड ENOENT मिला, ऐसी कोई फ़ाइल या निर्देशिका नहीं

किसी को भी यह देने के लिए, strace 2>/tmp/trace (command)और के लिए grep करना चाहते हैं ENOENT। जैसा कि मैंने कहा, यह समाधान संभवत: मेरे कंप्यूटर के लिए विशिष्ट है, लेकिन आप इसे देना चाहते हैं।


0

मेरे मामले में सभी मुझे क्या करने की जरूरत में कुछ परिवर्तन करना था my.cnfऔर सिर्फ 2 लॉग फ़ाइलों को हटाना ib_logfile0और ib_logfile1, और mysql शुरू

service mysql start

Mysql को पुनर्स्थापित करने की आवश्यकता नहीं है, बस इन 2 लॉग फ़ाइलों को हटा दें और mysql सर्वर को पुनरारंभ करें

मेरे द्वारा किए गए परिवर्तनों के नीचे my.cnf :

max_connections     = 1000     
max_allowed_packet  = 1024M
wait_timeout        = 7200 

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