mysql-server-5.1 को अपग्रेड करते समय apt-get हैंग हो जाता है


9

जब मैं निम्नलिखित करने का प्रयास करता हूं:

sudo apt-get update
sudo apt-get upgrade

मेरे Ubuntu सर्वर 10.04 इंस्टॉलेशन पर, यह निम्न पंक्ति में लटका हुआ है:

Preparing to replace mysql-server-5.1 5.1.41-3ubuntu12.1 (using .../mysql-server-5.1_5.1.41-3ubuntu12.3_i386.deb)

मैं इसमें से CTRL-C भी नहीं कर सकता! मैं अपने सत्र को मारने और एक अलग टर्मिनल से लॉग इन करने के लिए समाप्त हो गया हूं और अपग्रेड प्रक्रिया अभी भी चल रही है। मैंने इसे कई बार रिबूट किया है और जब मैं वापस जाता हूं और फिर से कोशिश करता हूं तो यह मुझे बताता है:

E: dpkg was interrupted, you must manually run 'sudo --configure -a' to correct the problem.

एक बार जब मैं ऐसा करता हूं कि मैं स्क्वायर वन में वापस आ जाता हूं और जब मैं mySQL को अपग्रेड करने की कोशिश करता हूं तो यह जम जाता है।


1
और, यह आप भी होंगे ... newyork.ubuntuforums.org/showthread.php?t=1514195
nik

2
@ यानिक: और? उसे दो जगहों पर एक सवाल नहीं पूछना चाहिए? दो जगहों पर पोस्ट करना अच्छा है? आप दिखा रहे हैं कि आप Google का उपयोग करना जानते हैं?
msw

2
@msw, यह कोई नकारात्मक टिप्पणी या दिखावा नहीं था। वास्तव में, मुझे लगा कि मुझे इसी तरह की समस्या का एक और संदर्भ मिल गया है .. लेकिन, ऐसा नहीं हुआ।
निक

@msw: क्रॉस-पोस्टिंग है ... विवादास्पद। बेशक यह इस संभावना को अधिकतम करता है कि आपको एक उत्तर मिलेगा, लेकिन एक ही चीज़ पर काम करने वाली अलग-अलग 'टीमें' भी होंगी, शायद वे एक ही सुझाव के साथ आ रही हैं और अपना समय बर्बाद कर रही हैं।
बॉबी

मेरे द्वारा यहां पोस्ट करने का कारण यह था कि मुझे ubuntuforums.org पर एक भी प्रतिक्रिया नहीं मिल रही थी। कहने की जरूरत नहीं है, मैं अब से :)
रोब

जवाबों:


2

अपने डेटाबेस का बैकअप लेने के बाद, नीचे के स्तर पर जाने का प्रयास करें:

sudo dpkg -r mysql-server
sudo apt-get check    # verify that apt's metadata is okay
sudo apt-get install mysql-server

जोड़ा गया :

के बाद से dpkg -rकोशिश घुट रहा है dpkg --purgeऔर उस के साथ पैकेज सामग्री प्राप्त नाकाम रहने dpkg -L mysql-server-5.1में इधर-उधर फिरना उन्हें जैप और उसके बाद /var/lib/dpkg

मैंने कभी नहीं देखा है कि चीजें बालों वाली हों, क्षमा करें।

यदि पहली बार में आप सफल नहीं होते हैं

मैं यहाँ जोर से सोच रहा हूँ, मुझे माफ कर दो। Mysql- सर्वर मेटा-पैकेज में ये पैकेज शामिल हैं या इसकी आवश्यकता है:

libdbd-mysql-perl
libdbi-perl
libhtml-template-perl
libnet-daemon-perl
libplrpc-perl
mysql-client-5.1
mysql-client-core-5.1
mysql-server
mysql-server-5.1
mysql-server-5.1

पैकेज प्रबंधन के लिए मेटा-डेटा को खुशी से विघटित किया जाता है, केंद्रीय भंडार होते हैं लेकिन पैकेज अकेले खड़े होते हैं। /var/cache/apt/archivesवह जगह है जहाँ *.debफ़ाइलें जो लाइव स्थापित की गई हैं।

पहले, इन पैकेजों के बारे में भूलने के लिए dpkg को मजबूर करें (कुछ फ़ाइलों को हटाने के लिए विफलता के जोखिम पर जो हम वैसे भी बदलने जा रहे हैं)।

for i in mysql-server-core-5.1 mysql-server-5.1 ... ; do
    sudo dpkg -r --force-remove-reinstreq $i
done

फिर पूर्ण स्थापना के लिए .deb फ़ाइलें प्राप्त करें:

sudo apt-get install --download-only mysql-server

और फिर उन्हें एक-एक करके स्थापित करने का प्रयास करें:

cd /var/cache/apt/archives
sudo dpkg -i mysql-server-core-5.1_5.1.41-3ubuntu12.3_i386.deb

अगर आपको वहाँ समस्या है, तो कोशिश करें:

sudo dpkg -D77777 -i mysql-server-core-5.1... > 2>&1 /tmp/dpkg.log.$$

और कोशिश करें कि लॉगफ़ाइल में ज़िलों से संबंधित प्रासंगिक रेखाएँ खोजें और उन्हें यहाँ पोस्ट करें। शुभकामनाएं, खूब तरक्की करो।


जब मैं "dpkg -r mysql-server" करता हूं तो यह कहता है कि यह इंस्टॉल नहीं है। तो मैं फिर "dpkg -r mysql-server-5.1" की कोशिश करता हूं और यह कहता है: पैकेज बहुत खराब असंगत स्थिति में है - आपको हटाने का प्रयास करने से पहले इसे फिर से स्थापित करना चाहिए।
रोब

मुझे लगता है कि आपने "dpkg -r mysql-server-5.1" की कोशिश की और असफल रहे?
msw

हाँ, यह विफल है। यह मानता है कि यह वहां है, लेकिन कहते हैं, "पैकेज बहुत खराब असंगत स्थिति में है - आपको हटाने का प्रयास करने से पहले इसे फिर से स्थापित करना चाहिए।"
रोब

"dpkg --purge" वही त्रुटि देता है। तो क्या मुझे "dpkg -L mysql-server-5.1" के साथ सूचीबद्ध सभी फाइलों को हटा देना चाहिए? और "muck" के बारे में आपका क्या मतलब है / var / lib / dpkg के बारे में?
रोब

अगला चरण जोड़ा गया
msw

6

जाहिरा तौर पर अद्यतन सर्वर के शुरू होने का इंतजार कर रहा है और किसी कारण से ऐसा नहीं होता है। समस्या को ठीक करने के लिए कई संभावनाएं हैं।

सबसे सरल:

  1. एक नया टर्मिनल खोलें, और चलाएं:

    sudo services mysql start
    

अधिक जटिल लेकिन कभी-कभी आवश्यक है: (यह तब आसान है जब आपके पास किसी अन्य टर्मिनल तक पहुंच नहीं है):

  1. प्रेस "^ z" ( Ctrl+ Z) जो आपके काम को "रोक" देगा। फिर भागो:

    sudo services mysql start
    
  2. एक बार सर्वर शुरू होने के बाद निम्न टाइप करें और एंटर दबाएं:

    fg 
    

    यह आपके "STOPPED" जॉब को अग्रभूमि में वापस रख देगा और जहां इसे छोड़ना है, जारी रखेगा।


मेरे मामले में, यह वास्तव में सर्वर के शुरू होने का इंतजार कर रहा था।
izak

हालांकि स्टार्ट कमांड ने कहा कि यह पहले से ही चल रहा था, कुछ सेकंड के भीतर ही ठीक हो गया। धन्यवाद
लियाम Wheldon

2

मुझे यह समस्या हो रही थी क्योंकि यह VM की एक प्रति थी इसलिए मैंने सर्वर का IP पता बदल दिया था, लेकिन my.cnf फ़ाइल में बाइंड-पता नहीं बदला। एक बार जब मैंने मिलान करने के लिए बाइंड-एड्रेस बदल दिया, तो अपडेट लटका नहीं और सफलतापूर्वक पूरा हो गया।


1

मुझे उसी समस्या का सामना करना पड़ा और मैंने इसे डेब्यू करने में एक दिन से अधिक समय लगा दिया।

जब मैंने डेटाबेस निर्देशिका को हटा दिया, तो /var/lib/mysql/, स्थापना सुचारू रूप से चली गई।


2
हालांकि सावधानी के साथ किया जाना चाहिए, है ना?
slhck

1

मुझे यह सटीक मुद्दा लग रहा था लेकिन मौजूदा समाधानों में से कोई भी उचित नहीं था। एक की स्थापना रद्द करें जबरदस्ती किसी भी * nix में अनावश्यक माना जाता है और निश्चित रूप से KISS नहीं है। मेरे मामले में मैंने पाया कि इसका कारण सरल था। MySQL शुरू करने से इनकार कर रहा था क्योंकि यह अभी भी चल रहा था! जब apt ने MySQL को रोकने की कोशिश की, तो यह सक्रिय था और वास्तव में कभी नहीं रुका।

हमेशा की तरह, सुनिश्चित करें कि आपके पास बैकअप है!

सेवा बंद करो:

sudo service mysql stop

सुनिश्चित करें कि सेवा अब नहीं चल रही है:

sudo ps ax | grep mysql

यदि यह अभी भी चल रहा है, तो इसे कुछ समय दें:

sudo kill <pid>

लेकिन आखिरकार, अगर यह अभी भी चल रहा है, तो आपको इसे आक्रामक तरीके से मारना होगा:

sudo kill -9 <pid>

एक बार जब आप पुष्टि कर लेते हैं कि यह अब नहीं चल रहा है, तो आप अपडेट जारी रख सकते हैं।

अपडेट पूरा होने के बाद, खासकर अगर आपको -9 को मारना था, तो यह सुनिश्चित करने के लिए mysqlcheck अवश्य चलाएं कि जो भी सेवा बंद न होने का कारण हो सकता है वह एक दूषित या टूटी हुई तालिका नहीं है। यह भी सुनिश्चित करें कि आपके पास नियमित बैकअप है (और सुनिश्चित करें कि उन बैकअप वास्तव में काम करते हैं!)।


0

मेरे मामले में मौजूदा /etc/mysql/my.cnf के साथ एक समस्या थी। /Var/log/mysql/error.log में त्रुटि लॉग की जाँच:

150112  5:45:47 [ERROR] Can't start server: Bind on TCP/IP port: Cannot assign requested address
150112  5:45:47 [ERROR] Do you already have another mysqld server running on port: 3306 ?
150112  5:45:47 [ERROR] Aborting

150112  5:45:47  InnoDB: Starting shutdown...
150112  5:45:52  InnoDB: Shutdown completed; log sequence number 0 1883376705
150112  5:45:52 [Note] /usr/sbin/mysqld: Shutdown complete

जाहिर है कि my.cnf के साथ एक अलग मुद्दा हो सकता है, लेकिन मेरे मामले में यह था कि हम एक पुराने आईपी पते से जुड़ने की कोशिश कर रहे थे। इसमें परिवर्तन:

bind 127.0.0.1

तय है कि और यह कोई समस्या नहीं शुरू करते हैं।

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