mysql-server-5.1'i yükseltirken apt-get kilitleniyor


9

Aşağıdakileri yapmaya çalıştığımda:

sudo apt-get update
sudo apt-get upgrade

Ubuntu Server 10.04 kurulumumda şu satırda asılı kalır:

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 bile yapamam! Sonunda oturumumu öldürmek ve farklı bir terminalden giriş yapmak zorunda kaldım ve yükseltme işlemi hala çalışıyor. Birkaç kez yeniden başlattım ve geri dönüp tekrar denediğimde bana söylüyor:

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

Bunu yaptıktan sonra bir kare geri döndüm ve mySQL'i yükseltmeye çalıştığımda donuyor.


1
ve bu da sen olursun
nik

2
@nik: ve? iki yerde bir soru sormamalı mı? iki yerde yayınlamak iyidir? Google'ı nasıl kullanacağınızı bildiğinizi mi gösteriyorsunuz?
msw

2
@msw, Olumsuz bir yorum veya gösteriş değildi. Aslında, benzer bir soruna başka bir referans bulduğumu sanıyordum .. ama öyle olmadığı ortaya çıktı.
nik

@msw: Çapraz Gönderi ... tartışmalı. Tabii ki, bir cevap alma olasılığınızı en üst düzeye çıkarır, ancak aynı şey üzerinde çalışan, muhtemelen aynı önerileri getiren ve sadece zamanlarını boşa harcayan farklı 'takımlar' da olacaktır.
Bobby

Burada yayınlamamın nedeni ubuntuforums.org'da tek bir yanıt alamıyorum. Söylemeye gerek yok, şu andan itibaren bunları bir teknoloji kaynağı olarak kullanmayacağım :)
Rob

Yanıtlar:


2

Veritabanlarınızı yedekledikten sonra uygun bir seviyeye gitmeyi deneyin:

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

eklendi :

Yana dpkg -rdenemek boğulma dpkg --purgeve ambalaj içeriğini almak başarısız dpkg -L mysql-server-5.1içinde sürtmek sonra zap onları ve /var/lib/dpkg.

Hiçbir şeyin bu kadar kıllı olduğunu görmedim, üzgünüm.

eğer başaramazsan

Burada yüksek sesle düşünmem lazım, affet beni. Mysql-server meta paketi şu paketleri içerir veya gerektirir:

libdbd-mysql-perl
libdbi-perl
libhtml-şablon-perl
libnet-daemon-perl
libplrpc-perl
mysql-istemci-5.1
mysql-istemci-çekirdek-5.1
mysql-sunucu
mysql-sunucu-5.1
mysql-sunucu-çekirdek-5.1

Paket yönetimi için meta veriler zevkle ayrılmıştır, merkezi depolar vardır, ancak paketler tek başınadır. yüklenen dosyaların canlı olarak yayınlandığı /var/cache/apt/archivesyerdir *.deb.

İlk olarak, dpkg'yi bu paketleri unutmaya zorlayın (yine de değiştireceğimiz bazı dosyaları silme riski altında).

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

Ardından tam yükleme için gereken .deb dosyalarını edinin:

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

ve bunları tek tek yüklemeyi deneyin:

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

orada sorunlarınız varsa deneyin:

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

Ve günlük dosyasında milyondan ilgili satırları bulmaya çalışın ve buraya gönderin. İyi şanslar ve godspeed.


Ben "dpkg -r mysql-server" yaptığımda yüklü olmadığını söylüyor. Bu yüzden "dpkg -r mysql-server-5.1" komutunu deniyorum ve şöyle diyor: Paket çok kötü tutarsız bir durumda - bir kaldırma girişiminden önce yeniden yüklemelisiniz.
Rob

Ben "dpkg -r mysql-server-5.1" denediniz ve başarısız oldu varsayalım?
msw

Evet başarısız oluyor. Orada olduğunu kabul ediyor, ancak "Paket çok tutarsız bir durumda, kaldırma işleminden önce yeniden yüklemelisiniz" diyor.
Rob

"dpkg --purge" aynı hatayı verir. Yani "dpkg -L mysql-server-5.1" ile listelenen tüm dosyaları silmeli miyim? Ve ne demek / var / lib / dpkg hakkında "muck"?
Rob

sonraki aşama eklendi
msw

6

Görünüşe göre güncelleme sunucunun başlamasını bekliyor ve herhangi bir nedenle başlamıyor. Sorunu çözmek için birkaç olasılık var.

Kolay:

  1. Yeni bir terminal açın ve çalıştırın:

    sudo services mysql start
    

Daha karmaşık ancak bazen gerekli: (başka bir terminale erişiminiz olmadığında kullanışlıdır):

  1. İşinizi "DURDURACAK" " z" ( Ctrl+ Z) tuşlarına basın . O zaman koş:

    sudo services mysql start
    
  2. Sunucu başlatıldığında aşağıdakileri yazın ve Enter tuşuna basın:

    fg 
    

    Bu, "DURDURULDU" işinizi ön plana getirecek ve kaldığı yerden devam edecektir.


Benim durumumda, gerçekten sunucunun başlamasını bekliyordu.
izak

Start komutu zaten çalıştığını söylese de, birkaç saniye içinde apt-get iyi devam etti. Teşekkürler
Liam Wheldon

2

Sunucunun IP adresini değiştirmişti ama my.cnf dosyasındaki bağlanma adresini değiştirmediği için bir VM kopyası olduğu için bu sorunu yaşıyordum. Bağlama adresini eşleşecek şekilde değiştirdikten sonra güncelleme askıda kalmadı ve başarıyla tamamlandı.


1

Aynı sorunla karşılaştım ve hata ayıklamak için bir günden fazla harcadım.

Veritabanı dizinini kaldırdığımda /var/lib/mysql/, kurulum sorunsuz gitti.


2
Bu dikkatli bir şekilde yapılmalıdır, değil mi?
slhck

1

Tam olarak bu sorunu yaşıyordum ama mevcut çözümlerin hiçbiri uygun görünmüyordu. Kaldırma işleminin zorlanması * nix'te gereksizdir ve kesinlikle KISS değildir. Benim durumumda sebebinin basit olduğunu gördüm. MySQL çalışmayı reddetti çünkü hala çalışıyor! Apt MySQL'i durdurmaya çalıştığında aktifti ve aslında hiç durmadı.

Her zaman olduğu gibi, yedekleriniz olduğundan emin olun!

Hizmeti durdurun:

sudo service mysql stop

Hizmetin artık çalışmadığından emin olun:

sudo ps ax | grep mysql

Hala çalışıyorsa, biraz zaman verin:

sudo kill <pid>

Ama sonunda, hala çalışıyorsa, agresif bir şekilde öldürmeniz gerekir:

sudo kill -9 <pid>

Artık çalışmadığını onayladıktan sonra, güncellemeye devam edebilirsiniz.

Güncelleme tamamlandıktan sonra, özellikle -9'u öldürmek zorunda kaldıysanız, hizmetin durmamasına neden olan şeylerin bozuk veya bozuk bir tablo olmadığından emin olmak için mysqlcheck'i çalıştırdığınızdan emin olun. Ayrıca düzenli yedeklemelerinizin olduğundan emin olun (ve bu yedeklerin gerçekten çalıştığından emin olun!).


0

Benim durumumda mevcut bir /etc/mysql/my.cnf ile ilgili bir sorun vardı. /Var/log/mysql/error.log'daki hata günlüğünün kontrol edilmesi:

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

Açıkçası my.cnf ile ilgili farklı bir sorun olabilir, ancak benim durumumda eski bir IP adresine bağlanmaya çalışıyorduk. Şununla değiştiriliyor:

bind 127.0.0.1

bunu düzelttim ve sorun çıkmadı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.