Temizlendikten sonra mysql sunucusu yeniden yüklenemiyor


29

Geçenlerde Ubuntu 16.04'ün yeni kurulumunu yaptım. Ayrıca mysql-serverve mysql-client(varsayılan sürüm 5.7.12) aracılığıyla yükledim apt-get install.

5.7.12 bazı sorunları gösterdiğinden, kaldırmaya karar verdim. denedimapt-get remove mysql-server mysql-client ilk ama testere eserler gibi o /etc/mysqlve /var/lib/mysqlkaldırıldı vermedi.

Sonra denedim apt-get --purge removed mysql-server mysql-client, ama yine de bir fark yok.

Böylece onları manuel olarak kaldırdım (üzerinden rm -rf). Ayrıca el tüm kaldırılmış *mysql*altındaki dosyaları /usr/herhangi geldimysql-* gibi bağımlılık paketleri mysql-common.

Ancak şimdi yeniden yüklemek istediğimde mysql-server and -client yapamayacağımı buluyorum.

Aslında, şu anda ikisini de yapamayacağım bir durumdayım apt-get remove mysql-server deapt-get install mysql-server !

İçinde bulunduğum durumu nasıl düzeltirim? Yerel paket havuzum meta verilerim bozulduysa, nasıl onarabilirim?

Bütün kutsanmış işletim sistemimi diğer uygulamalar ve ortamımla yeniden kurmaktan nefret ediyorum, çünkü sadece bir kez daha mysql-server .

Örneğin, silmeyi denediğimde aldığım hatadır mysql-server:

$ apt-get remove  mysql-server
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libaio1 mysql-client-5.7 mysql-client-core-5.7 mysql-common mysql-server-5.7 mysql-server-core-5.7
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
  mysql-server
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 159 kB disk space will be freed.
Do you want to continue? [Y/n] 
(Reading database ... 237601 files and directories currently installed.)
Removing mysql-server (5.7.12-0ubuntu1) ...
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 mysql-server-5.7
E: Sub-process /usr/bin/dpkg returned an error code (1)

Yüklemeye çalışırken, şu hatayı alıyorum:

$ apt-get -f install mysql-server
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  mysql-server
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/10.1 kB of archives.
After this operation, 159 kB of additional disk space will be used.
Selecting previously unselected package mysql-server.
(Reading database ... 237599 files and directories currently installed.)
Preparing to unpack .../mysql-server_5.7.12-0ubuntu1_all.deb ...
Unpacking mysql-server (5.7.12-0ubuntu1) ...
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

İşte çıktısı apt-get install -f:

$ apt-get install -f 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

Öyle görünüyor mysql-server-5.7kötü durumda olduğunu, yeniden deneyin: sudo apt-get install --reinstall mysql-server-5.7.
fkraiem

Fark yaratmıyor, aynı hata satırını ... invoke-rc.d: initscript mysql, action "start" failed. ...alıyorum : diğer yükleme komutları ile birlikte alıyorum.
Harry,

Daha sonra, kaldırmak için deneyin ... sudo apt-get remove --purge mysql-server-5.7. Bunun gerçekten mysql-server-5.7bahsettiğimize dikkat edin, değil mysql-server.
fkraiem

@Harry Çoğu zaman, bu tür hatalardan kurtulmak için sistemi yeniden başlatıyorum.
papatya,

Benim sorunum bu yazı
Raizal IN Pregnanta

Yanıtlar:


80

10 Ocak 2017 tarihinde düzenlendi : Bu yayındaki ciddi sorunları düzeltmek için bu yazının büyük bir incelemesi.

Kalbindeki Hata

Sorun, paketin hala yarı yüklü ve yarı yapılandırılmış bir durumda hala sistemde olması ve açıkça kaldırılması gerekmesidir.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

Asıl söylediği şey paketin mysql-server-5.7bağımlı mysql-serverolduğu, zaten kurulu olduğu ama yapılandırılmadığı. Yani purgegeride bıraktığınız ekmek kırıntılarını kaldırmak için buna ihtiyacınız var mysql-server-5.7.

sudo apt purge mysql-server mysql-server-5.7

gerekçe

Kullanarak yazılımı yüklediğinizde apt, sizin için de bağımlılıkları otomatik olarak işler.

Belirli paketleri kaldırdığınızda, aynı bağımlılıkları kullanmayabilir. Bu gönderi durumunda, bu bağımlılıkmysql-server-5.7 .

Aşağıdaki komutu vererek bir paket durumunu görmek için kontrol edebilirsiniz.

dpkg-query -l [package-name-here]

Genellikle kodu görürseniz un veya rcpaket adının solunda gerçekten bozuk bir paket olup olmadığını anlayabilirsiniz.

Bu sorunu yaşadığımda, libapache2-mod-phpve ile oldulibapache2-mod-php7.0 . Bu benim çıktımdı.

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                        Version            Architecture       Description
+++-===========================-==================-==================-============================================================
un  libapache2-mod-php          <none>             <none>             (no description available)

Benim durumumda, paketimin durumunun bilinmediğini ve kurulmadığını iddia etti (kod un sistemime ) .

Ne zaman söyle aptiçinremove bir şey, bu paketleri, yapılandırma dosyaları ve otomatik yüklemeler sırasında sorunlu olabilir diğer öğeleri bırakabilir.

Eğer söylediğimde aptiçinpurge bir şey bunun herhangi kırıntıları çıkarmak için en iyisi olmadığınıremove geride bırakmış olabilirler.

Başlangıçta sürecin devam ettiğini, ancak büyük olasılıkla Aktif Değil veya öldüğünü varsaydığımı belirttim.

Hizmetin paket kaldırma işleminize engel olup olmadığını denetlemenin en iyi yolu, önce bu hizmeti denetlemektir.

1) mysqlHizmet araştırması

Bize verilen sistem hatasını kullanarak, aptaslında servis systemctldurumunu kontrol ederek hatayı araştırmak için kullanabiliriz .mysql

sudo systemctl status [pattern]

Bizim durumumuzda, mysql'nin çalışıp çalışmadığını görmek istiyoruz.

systemctl status mysql.service

Servis çalışıyorsa bu çıkışı görmelisiniz.

systemctl status mysql
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2017-01-10 23:10:06 EST; 1h 3min ago
 Main PID: 1206 (mysqld)
   CGroup: /system.slice/mysql.service
           └─1206 /usr/sbin/mysqld

Not: Servis ölmüşse, bu isimde çalışan hiçbir servis olmadığını belirten kısa bir mesaj göreceksiniz ve ardından 3. adıma atlayın.

2) mysqlkullanarak hizmeti durdurmaksystemctl

Not: [Desen] serviceveya ile listelenen isim olmalıdır initctl. sebebi kullanım patternnedeni systemctlkullandığınız gerekiyorsa kullandığı regex eşleştirme, bu yüzden dikkatli olun killargüman.

sudo systemctl stop [pattern]

nerede patternMySQL cini / hizmet adını temsil eder. durdurma işe yaramazsa deneyin

sudo systemctl kill [pattern]

Örneğin

sudo systemctl stop mysql

3) Kaldırma / temizleme mysql

Tamamen temizlemeniz gerekiyorsa, önce hizmet veya işlemin durduğundan ve ardından doğru dosyaları ve dizinleri kaldırdığınızdan emin olun!

Not: Doğru mysqlsürümü hedeflediğinizden emin olun . Örneğin, 5.5 kullanıyorsanız, sürüm numarasını uygun şekilde ayarlayın.

UYARI: aşağıdaki adımlar verilerinizi silecektir! (yedekleme yapmak için ilk komutun çalıştırılması gerekir)

kaynak: MySQL'i nasıl kaldırırım?

tar -zcvf ~/msql_backup.tar.gz /etc/mysql /var/lib/mysql 
sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-5.7 mysql-client-core-5.7
sudo rm -rfv /etc/mysql /var/lib/mysql
sudo apt autoremove
sudo apt autoclean

4) Kırık paketlerin tamir edilmesi ve eksik bağımlılıkların ele alınması

Yukarıdaki adımlar sizin için işe yaramadıysa, yapılan herhangi bir hasarı onarmak aptiçin --fix-brokenseçeneği ile çalıştırmak gerekebilir .

apt updateÖnce ve sonra emin olunapt install

sudo apt update    
sudo apt install mysql-server mysql-client --fix-broken --fix-missing

5) Her şey başarısız olduğunda, mysqlkendini kur ve kur

Yukarıdakilerin hiçbiri işe yaramazsa, kaynağı manuel olarak indirmeniz, derlemeniz ve oradan yüklemek için make veya bash kullanmanız gerekir (tümü otomatik olduğundan beri sandığı kadar acı verici değildir).


"16.04 şu anda bir sürü böcek ile dolu." MySQL dahil, benim için çalışıyor. Bana öyle geliyor ki burada gördüğümüz sorunların çoğu, rmpaketlere ait dosyalara çalışmak gibi yanlış bir şey yapan insanlardan kaynaklanıyor .
fkraiem

1
Mükemmel iş dostum! teşekkür ederim. Bütün günümü aptalca talimatlar kullanarak harcadım. Şimdi bu çalıştı!
Renjith VR,

Talimatlarına uydum ve sudo systemctl stop mysql işe yaramış gibi geldi. Ancak yeniden başlattıktan sonra tekrar kırıldı. Başlat veya durdur çalışmıyor. sudo systemctl status mysql şunu gösterir: Aktif: Pzt 2016-06-27 11:05:22 BST; 8min önce MySQL'in durması için gerçekten 10 dakika beklemeli miyim? İnsanların tamamen durmayan bir hizmeti temizlemesine şaşırmadınız mı? Ubuntu 16.04'ün düzeltmesi mümkün mü? Seçenekler nelerdir, önceki LTS sürümüne ya da başka bir dağıtıma geri dönüyor mu?
ruby_object

Teşekkürler ve bu şekilde yeniden takmadan mükemmel çalıştı!
Louwki

5
not: sudo rm -rf /var/lib/mysqlvarsayılan olarak tüm veritabanlarınızı silecektir. İlk önce bir yedekleme yap!
augusto

7

İlk gönderideki sorun, bir meta paketini sql öğeleri için değil, yeniden yapılandıramazsınız. Geçerli yayın öğesini belirtmeniz gerekir.

Kullanım söyle;

apt search mysql-server

Bu, yani bir paket listesi göstermelidir

"mysql-server-5.7" "mysql-server-core-5.7" veya sonraki sürümler

sonra;

dpkg-reconfigure --force mysql-server-5.7 mysql-server-core-5.7

yapılır.


4

Bu sizin için doğru çözüm

Öncelikle, mysql-server'ın tüm paketlerini kaldırmanız gerekecektir:

UYARI: aşağıdaki adımlar verilerinizi silecektir! İlk önce bir yedekleme yapın!

sudo rm -rf /var/lib/mysql

Sonra yükleyin:

sudo apt-get install lamp-server^

Veya şunları yapabilirsiniz:

sudo apt-get install mysql-server

0

bunu gördüm

Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.

Bir kanıt olarak, hala var olan hatalı bir başlangıç ​​betiğinin bulunduğuna dair bir ipucu.

Bakın /etc/init.d/mysqlve herhangi bir sembolik bağlantılar. Bunları kaldırdıktan sonra yeniden temizleme işleminden sonraki sorunlarımı çözdüm.


0

Bu hata, MySQL'den MariaDB'ye geçerken de meydana geldi ( https://bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1490071 ).

MySQL ikili veri dosyaları MariaDB ile uyumlu değildi, bu yüzden MySQL'e geri döndüm çünkü mysqldump ile uğraşmak için zamanım olmadı.

Önce MariaDB verilerini uzaklaştırmak zorunda kaldım /var/lib/mysql, sonra MySQL'i kurdum ve sonra orijinal verilerimi /var/lib/mysql-5.7(bu yedekleme hatadan önce otomatik olarak oluşturuldu) konumuna taşıdım /var/lib/mysql.


-2

apt-get -f installBozuk SQL paketinizi düzeltmeyi deneyin ve paket yöneticisinde hala sorun yaşıyorsanız SQL server kaynak kodunu indirin ve derleyin !! Ama yukarıdaki komutu deneyin ve ayrıca dpkg -l | grep sqlpaket yöneticisinin hala SQL ya da SQL olmadığını düşündüğünüzü bulmak için kullanın .


İşe yaramadı. Ayrıca paketi yüklemeye çalışırken aldığım hatayı da ekledim.
Harry,

@Harry apt-get -f installPaket adı belirtmeden tek başına çalıştırmalısınız .
fkraiem

Fkraim'in dediği gibi paket ismiyle kullan ...
Ali Ghasempour

Çıkışı eklendi, apt-get install -fdeğişiklik yok.
Harry,

Sinaptik uygulamayı deneyin ve bozuk bir paket olup olmadığını kontrol edin (sol sütunda) [masaüstünüz varsa]
Ali Ghasempour
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.