Mariadb neden ölmeye devam ediyor? Nasıl durdurabilirim?


25

MariaDB 10.0.23-0 'u Ubuntu 15.10' da LAMP sunucusu olarak kullanıyorum. Çalışan sudo /etc/init.d/mysql startsonuçlar:

Job for mariadb.service failed because a timeout was exceeded. See "systemctl status mariadb.service" and "journalctl -xe" for details.

Çıktısı systemctl status mariadb.service:

● mariadb.service - MariaDB veritabanı sunucusu
   Loaded: loaded (/lib/systemd/system/mariadb.service; etkin; satıcı ön ayarı: etkin)
  Ekstra: /etc/systemd/system/mariadb.service.d
           └─migrated-my.cnf-settings.conf dan
   Aktif: başarısız oldu (Sonuç: zaman aşımı) Cts 2016-03-26 22:52:42 EDT; 26 saniye önce
  Süreç: 8707 ExecStart = / usr / sbin / mysqld $ MYSQLD_OPTS $ _WSREP_NEW_CLUSTER (kod = çıkıldı, durum = 0 / SUCCESS)
  Süreç: 8706 ExecStartPre = / usr / bin / install -m 755 -o mysql -g kök -d / var / run / mysqld (kod = çıkıldı, durum = 0 / BAŞARI)
 Ana PID: 8707 (kod = çıkıldı, durum = 0 / BAŞARI)

Mar 26 22:52:39 boggan sistemi [1]: mariadb.service: Başlat işlemine zaman aşımına uğradı. Sonlandırma.
Mar 26 22:52:39 boggan mysqld [8707]: 2016-03-26 22:52:39 140105856617216 [Not] / usr / sbin / mysqld: Normal kapanma
Mar 26 22:52:39 boggan mysqld [8707]: 2016-03-26 22:52:39 140105856617216 [Not] Etkinlik Zamanlayıcı: Sırayı temizleme. 0 etkinlik
Mar 26 22:52:39 boggan mysqld [8707]: 2016-03-26 22:52:39 140104920164096 [Not] InnoDB: FTS iplik çıkışını optimize eder.
Mar 26 22:52:39 boggan mysqld [8707]: 2016-03-26 22:52:39 140105856617216 [Not] InnoDB: Kapatılıyor ...
Mar 26 22:52:42 boggan mysqld [8707]: 2016-03-26 22:52:42 140105856617216 [Not] InnoDB: Kapatma tamamlandı; günlük sıra numarası 3336953
Mar 26 22:52:42 boggan mysqld [8707]: 2016-03-26 22:52:42 140105856617216 [Not] / usr / sbin / mysqld: Kapatma tamamlandı
Mar 26 22:52:42 boggan sistemi [1]: MariaDB veritabanı sunucusu başlatılamadı.
Mar 26 22:52:42 boggan sistemi [1]: mariadb.service: Birim başarısız durumuna geçti.
Mar 26 22:52:42 boggan systemd [1]: mariadb.service: 'timeout' sonucu bulunamadı

İlk systemdsatır bir tür "iyi ah". Zaman aşımına uğradığını biliyorum. İkinci systemd, sonra mysqldçünkü hatları, biraz esrarlı olduğunu mu aslında baştan içinde. Veritabanına bağlı olan bir uygulama (OwnCloud, özellikle), MariaDB'nin çalışır durumda olduğu dakika ve değişiklik için normal çalışıyor.

Başka bir sorutime /etc/init.d/mysql start ne kadar sürdüğünü belirlemek için kullanmayı önerdi . Zamanı onaylamak için defalarca koştum - her seferinde 90'ların her iki tarafında bir kaç saniye.

Diğer araştırmalar ... ayrıca, bu cezayı olan dosya izinlerini kontrol etmek için bana yol vermez geçici olarak başlatmak. (Linux'a gelince kuşkuyla sınırlı) yeteneğimin en iyisini dürttüm ve dürttüm, ve hiçbir şey yapmadım.

Öyleyse soru şu ... MariaDB servisini nasıl ayakta tutabilirim?

Fazladan bir kırışıklık olarak, bu soruyu yazdıktan sonra, makineyi çalışır halde bıraktım. Bir hafta sonra tekrar geldim (aralarına dokunmadım). Tam olarak aynı komutu kullanarak sudo /etc/init.d/mysql startbaşarılı oldu. MySQL daemon başladı ve koştu; bir [ ok ]rapor ile geri döndü . Denemenin uğruna yeniden başladım ve başladığım yere döndüm.

Önemli olması durumunda, çıktısı journalctl -xe:

Apr 02 23:51:44 boggan systemd [1]: Durduruldu Gerekli dosyaları önceden okuyun.
- Konu: Birim ureadahead.service kapanmayı tamamladı
- Tanımlanan: By: systemd
- Destek: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
- 
- Birim ureadahead.service kapatılması bitti.
Apr 02 23:51:55 boggan mysqld [2645]: 2016-04-02 23:51:55 140386161068800 [Not] InnoDB: Çevrimiçi DDL: Başlat
Apr 02 23:51:55 boggan mysqld [2645]: 2016-04-02 23:51:55 140386161068800 [Not] InnoDB: Çevrimiçi DDL: Tablonun kümelenmiş dizinini okumaya başlayın ve geçici dosyalar oluşturun
Apr 02 23:51:55 boggan mysqld [2645]: 2016-04-02 23:51:55 140386161068800 [Not] InnoDB: Çevrimiçi DDL: Tablonun kümelenmiş indeksini okuma ve geçici dosyalar oluşturma
Apr 02 23:51:55 boggan mysqld [2645]: 2016-04-02 23:51:55 140386161068800 [Not] InnoDB: Çevrimiçi DDL: Tamamlandı
Apr 02 23:51:55 boggan mysqld [2645]: 2016-04-02 23:51:55 140386161068800 [Not] InnoDB: Çevrimiçi DDL: Tamamlandı
Apr 02 23:52:06 boggan dbus [713]: [sistem] 'org.bluez' hizmeti etkinleştirilemedi: zaman aşımına uğradı
Nis 02 23:52:37 boggan sistemi [1]: mariadb.service: İşlemi zaman aşımına uğradı. Sonlandırma.
Nis 02 23:52:37 boggan mysqld [2645]: 2016-04-02 23:52:37 140386097400576 [Not] / usr / sbin / mysqld: Normal kapanma
Nis 02 23:52:37 boggan çekirdeği: denetim: tip = 1400 denetim (1459655557.935: 31): apparmor = "DENIED" işlem = "sendmsg" profil = "/ usr / sbin / mysqld" name = "/ run / systemd / bildir "pid = 2645 comm =" mysqld "demand_mask =" w "denied_mask =" w "fsuid = 122 ouid = 0
Nis 02 23:52:37 boggan denetim [2645]: AVC apparmor = "DENIED" işlem = "sendmsg" profile = "/ / usr / sbin / mysqld" name = "/ çalışma / sistemd / bildir" pid = 2645 comm = " mysqld "demand_mask =" w "denied_mask =" w "fsuid = 122 öt = 0
Apr 02 23:52:37 boggan mysqld [2645]: 2016-04-02 23:52:37 140386097400576 [Not] Etkinlik Zamanlayıcı: Sırayı temizleme. 0 etkinlik
Apr 02 23:52:37 boggan mysqld [2645]: 2016-04-02 23:52:37 140385225500416 [Not] InnoDB: FTS iplik çıkışını optimize eder.
Nis 02 23:52:37 boggan mysqld [2645]: 2016-04-02 23:52:37 140386097400576 [Not] InnoDB: Kapatılıyor ...
Nis 02 23:52:39 boggan mysqld [2645]: 2016-04-02 23:52:39 140386097400576 [Not] InnoDB: Kapatma tamamlandı; günlük sıra numarası 3360838
Nis 02 23:52:39 boggan mysqld [2645]: 2016-04-02 23:52:39 140386097400576 [Not] / usr / sbin / mysqld: Kapatma tamamlandı
Nis 02 23:52:39 boggan çekirdeği: denetim: tip = 1400 denetim (1459655559.419: 32): apparmor = "DENIED" işlem = "sendmsg" profil = "/ usr / sbin / mysqld" name = "/ run / systemd / bildir "pid = 2877 comm =" mysqld "demand_mask =" w "denied_mask =" w "fsuid = 122 ouid = 0
Nis 02 23:52:39 boggan denetimi [2877]: AVC apparmor = "DENIED" işlem = "sendmsg" profile = "/ / usr / sbin / mysqld" name = "/ çalışma / sistemd / bildir" pid = 2877 comm = " mysqld "demand_mask =" w "denied_mask =" w "fsuid = 122 ouid = 0
Nis 02 23:52:39 boggan denetlemesi [2645]: AVC apparmor = "DENIED" işlem = "sendmsg" profile = "/ / usr / sbin / mysqld" name = "/ çalıştır / systemd / notify" pid = 2645 comm = " mysqld "demand_mask =" w "denied_mask =" w "fsuid = 122 ouid = 0
Nis 02 23:52:39 boggan çekirdeği: denetim: tip = 1400 denetim (1459655559.419: 33): apparmor = "DENIED" işlem = "sendmsg" profil = "/ usr / sbin / mysqld" name = "/ run / systemd / bildir "pid = 2645 comm =" mysqld "demand_mask =" w "denied_mask =" w "fsuid = 122 ouid = 0
Apr 02 23:52:39 boggan systemd [1]: MariaDB veritabanı sunucusu başlatılamadı.
- Konu: Birim mariadb.service başarısız oldu
- Tanımlanan: By: systemd
- Destek: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
- 
- Birim mariadb.service başarısız oldu.
- 
- Sonuç başarısız oldu.
Nis 02 23:52:39 boggan sistemi [1]: mariadb.service: Birim başarısız durumuna geçti.
Apr 02 23:52:39 boggan systemd [1]: mariadb.service: 'timeout' sonucu başarısız oldu.

2
journalctl -xeÇıkış kesilir, bu güncelleyebilirsiniz? apparmor="DENIED"Mesajlara daha yakından bir göz atın (eğer işletim sisteminizde apparmor etkinse), mariadb başlangıcında bir sorun olabilir.
tlo

Tlo yapmalıyım ... bu akşama kadar beklemek zorunda kalacak. Makineye bulunduğum yerden erişemiyorum. Sonuçta, otururken işlevini yerine getiremedim, peki neden uzaktan erişim için onu ayarlamıyorum? Ben de kesinlikle dikkatle bakacağım. Etkinleştirildiyse, varsayılan olarak etkindir. Sistem tarafından yüklenen hiçbir şeyi değiştirmedim, LAMP ekledim.
TJL

@tlo Çıktı güncellendi ve açıklamaya biraz kırışıklık eklendi.
Vurmak

1
@tlo Yardımın için teşekkürler. aparmor suçluydu.
TJL,

Yanıtlar:


28

MySQL'den mariadb'ye yükselttikten sonra da aynı sorunu yaşadım. İşin garibi, hizmet mariadb başlangıcının zaman aşımına uğraması (sistem önyüklemesi veya el kitabında) başarısız olmasına karşın, hizmet mysql başlangıcında başarılı oldu.

TJL tarafından verilen açıklama doğru ancak düzeltme benim için işe yaramadı.

$ sudo aa-complain /usr/sbin/mysqld
Setting /usr/sbin/mysqld to complain mode.

ERROR: /etc/apparmor.d/usr.sbin.mysqld contains no profile

Bu yüzden profili devre dışı bıraktım ( plutocrat'ın çözümüne denk gibi görünen aa-devre dışı bırakma ile )

$ sudo aa-disable /usr/sbin/mysqld
Disabling /usr/sbin/mysqld.

MySQL-Akonadi ve MySQL-Digikam'ı da devre dışı bıraktım.

Bir apparmor yeniden yükleme yeterli değildi, bu yüzden yeniden başlatmak zorunda kaldım ve mariadb mükemmel bir şekilde başladı.


Yeniden başlatmadan çalışmanın bir yolunu bulamadığını onaylamak.
Meetai.com

Bu cevap benim için Kubuntu 18.04.2 LTS'de çalıştı. complainve ... apparmor reload( TJL cevap ) gerçekten de yeterli değildi.
Marten Koetsier

25

aparmor suçluydu. İçeriğine rağmen /etc/apparmor.d/usr.sbin.mysqldbu AppArmor bittiğini tam olarak ne olduğunu, mariadb boğulursun olmaz bu yüzden orada hiçbir şeyin ama comments olmak ve iddia.

Oracle Blog'daki AppArmor ve MySQL , neler olduğunu anlamak için gerekenleri sağladı.

sudo aa-statusapparmor'un ne yaptığını gösterir; gerçekte uygulanmakta olan bir politika var, neye şikayet etmeye karar verilmiş.

sudo apt-get install apparmor-utils apparmor profillerinin başa çıkmasını kolaylaştıran birkaç komut ekler, örneğin ...

sudo aa-complain /usr/sbin/mysqldŞikayet etmek için profili "zorla" dan çevirir. ( aa-enforcegeri döner.)

Bu işlem bittiğinde, sudo service apparmor reloadaparmor'u yeniden başlatır ve işte sudo /etc/init.d/mysql startçalışır ... ve sunucu çalışmaya devam eder.


1
Kutsal bok herif; Bu gerçekten işe yaradı. Bu, üretim sunucumuzu birkaç saatliğine bırakarak etkilediğinden hafif bir panik yaşadım. Tıpkı senin gibi bir uzman değilim ve /var/log/mysql/error.log dosyasında çeşitli hatalar için web’in her yerini aradım. Bunun için çok teşekkür ederim!
Muqito

1
Benim için aynı. Ubuntu 14.04'ten 16.04'e yükselttim ve MySQL'i çalıştırma yeteneğimi kaybettim. Şimdi çalışıyor! Bunu detaylandırdığınız için çok teşekkürler: D. Haftalardır bakıyorum!
Sawtaytoes

Benim için pek iyi değil, bahşiş için teşekkürler apparmor-utils. Üç yıl sonra alıyorum ERROR: /etc/apparmor.d/usr.sbin.mysqld contains no profile.
YetiCGN

14

Apparmor içinde mysql tamamen devre dışı bırakmak zorunda kaldı. Bir şikayet, benim için hiçbir şey yapmaz. Yani ...

ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/

Sonra yeniden başlat


Teşekkür ederim! Sorunumun tek çözümü buydu! Ayrıca mysql'den mariadb'ye yükselttim
Thomas Gatt

Bu benim için de işe yaradı, çok teşekkür ederim
Eman

3

Basit bir çözüm, bilinmeyen AppArmor profillerini kaldırmaktır:

aa-remove-unknown
Removing '/snap/core/6350/usr/lib/snapd/snap-confine'
Removing '/usr/sbin/mysqld'

İşe yarıyor!


Aslında bu işleri halletmek için yapmam gereken şeydi. Yukarıdaki kabul görmüş cevap bana ERROR: /etc/apparmor.d/usr.sbin.mysqld contains no profiletam olarak doğru olduğunu söyleyecektir , çünkü dosya sadece yorumlardan ibarettir. Belki de AppArmor'un daha yeni bir versiyonunda, 2016'da çalışırken bu dosyalarda başarısız olmasına neden
oldular

Bu doğru cevaptır (en azından 2019'da). Olan, MySql'nin kaldırılmasından sonra, AppArmor profilinin /usr/sbin/mysqldhala çekirdeğe yüklenmiş olmasıdır. Koşmak aa-remove-unknown(veya yeniden başlatmak) bunu çözer.
zwets
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.