MySQL başlatılamıyor - MySQL çok hızlı yeniden doğuyor, durdu


33

Bugün ubuntu 12.04'ün yeni kurulumunu yaptım ve yerel gelişim ortamımı kurmaya başladım. MySQL yükledim ve /etc/mysql/my.cnfInnoDB en iyi duruma getirmek için düzenlenmiş ancak MySQL yeniden başlatmaya çalıştığımda, bir hata ile başarısız olur:

[20:53][tom@Pochama:/var/www/website] (master) $ sudo service mysql restart
start: Job failed to start

Sistem günlüğü init betiğinde bir sorun olduğunu ortaya koyuyor:

> tail -f /var/log/syslog

Apr 28 21:17:46 Pochama kernel: [11840.884524] type=1400 audit(1335644266.033:184): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=760 comm="apparmor_parser"
Apr 28 21:17:47 Pochama kernel: [11842.603773] init: mysql main process (764) terminated with status 7
Apr 28 21:17:47 Pochama kernel: [11842.603841] init: mysql main process ended, respawning
Apr 28 21:17:48 Pochama kernel: [11842.932462] init: mysql post-start process (765) terminated with status 1
Apr 28 21:17:48 Pochama kernel: [11842.950393] type=1400 audit(1335644268.101:185): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=811 comm="apparmor_parser"
Apr 28 21:17:49 Pochama kernel: [11844.656598] init: mysql main process (815) terminated with status 7
Apr 28 21:17:49 Pochama kernel: [11844.656665] init: mysql main process ended, respawning
Apr 28 21:17:50 Pochama kernel: [11845.004435] init: mysql post-start process (816) terminated with status 1
Apr 28 21:17:50 Pochama kernel: [11845.021777] type=1400 audit(1335644270.173:186): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=865 comm="apparmor_parser"
Apr 28 21:17:51 Pochama kernel: [11846.721982] init: mysql main process (871) terminated with status 7
Apr 28 21:17:51 Pochama kernel: [11846.722001] init: mysql respawning too fast, stopped

Herhangi bir fikir?


Zaten denediğim şeyler:

Googled ve apparmor ile bir Ubuntu hatası buldum ( https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/970366 ), zorlama modundan şikayet moduna apparmor değiştirdim:

sudo apt-get install apparmor-utils
sudo aa-complain /usr/sbin/mysqld
sudo /etc/init.d/apparmor reload

ama yardımcı olmadı. Hala mysql başlayamıyorum.

Ayrıca InnoDB günlük dosyalarının mysql'nin beklediğinden farklı bir boyutta olabileceğini düşündüm. Kullanmayı yeniden başlatmadan önce innodb günlük dosyalarını kaldırdım sudo mv /var/lib/mysql/ib_logfile* /tmp. Yine de şans yok.

Çözüm: 12.04'ü yeniden yükledim, /etc/mysql/my.cnfhiçbir şekilde dokunmamaya dikkat ettim . Mysql çalışıyor, bu yüzden yapmam gerekeni yapabilirim. Ama bir noktada düzenlemem gerekecek - Umarım bir çözüm bulmuş olacağım, ya da bu soruya cevap verilecek ...

Yanıtlar:


29

Sonunda konuyu çözdüm. Temel olarak, bazı parametrelerin tanımı, mysql'nin önceki sürümünden çıkarıldı ve farklı isimlerle değiştirildi. Düzeltmek için /etc/mysql/my.cnf dosyasını değiştirin:

# Tom Added to ensure the server character set is set to utf8
default-character-set = utf8
default-collation     = utf8_general_ci

ile:

# Tom Added to ensure the server character set is set to utf8
character_set_server  = utf8
collation_server      = utf8_general_ci

Bu, ilgili launchpad hata raporu: https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/958120 .

Veya kolayca çalıştırın:

# Miraz added dpkg-reconfigure
dpkg-reconfigure mysql-server-5.5

Ancak, eski bir mysql sürüm kurulumunun kurulu olmadığından emin olun, eğer varsa lütfen kaldırın:

# Miraz quick mysql package check
dpkg -l *mysql*

Bu sorunu yaşamadım, fakat dpkg-reconfigure mysql-server-5.5konfigürasyonumda yanlış olan her şeyi düzelttim.
— David Purdue

benim durumumda, sorun /etc/mysql/my.cnf.... içinde yanlış yazılmış bir özellik adı olarak ortaya çıktı: Bu blogdan: dangtrinh.com/2014/05/… , mysqld -v komutunu çalıştırın. Googling mysql çıkış kodunu 7, başarı olmadan denedim. Tahminime göre, çıkış kodu 7, mysql yapılandırma dosyasını ayrıştırmak için başarısızlıklarla ilgili.
— MaasSql

Aynı sorunu yaşadım, ancak hatalı yapılandırmamın /etc/mysql/conf.d/* altında olduğu ve /var/log/mysql.* isimli eski günlükler olduğu için izlemem zordu. aktif günlükler / var / log / mysql / *.
— Dave Burt

1
not: utf8_unicode_cidaha iyi. Şimdi bileutf8mb4_unicode_ci
— Akshay

10

Innodb, 128M olarak ayarlanmış bir varsayılan ayara (innodb_buffer_pool_size) sahiptir - bu, sunucunuz için çok büyük olabilir (özellikle küçük bir Amazon EC2 AMI kullanıyorsanız - ki ben yapıldı). sıraya /etc/mysql/my.cnf

innodb_buffer_pool_size = 16M

Bu düzeltmeyi buraya yazdım http://www.mlynn.org/2012/07/mysql-5-5-on-ubuntu-12-04-job-failed-to-start


VM'mde hafızanın azalıyordu. innodb_buffer_pool_sizeDüşük ayar yapmak çözümün bir parçasıydı, ancak yalnızca bellekte kalmayacağınıza dikkat edin.
— thaddeusmt

10

Ben de benzer bir problem yaşadım. Sinir bozucuydu çünkü sorunun ne olduğunu gösteren herhangi bir hata günlüğü göremedim.

Benim durumumda, innodb_buffer_pool_size için belirlediğim değer sunucunun belleği için çok büyüktü.

Bunu doğrudan mysql kullanıcısı olarak mysqld çalıştırarak buldum.

# su mysql
# mysqld

Bu şekilde aslında hata çıktısını görüyorsunuz.


2
Bu harika bir ipucu, mysql'den bazı anlamlı hata ayıklama bilgileri almak için uğraşıyordum. Teşekkürler!
— eageranalyst

3

Ben de benzer bir problem yaşadım. Aşağıdaki öğeler, mysql sunucusundan 5.5 kaldırıldığını söylüyor.
Onları senin içinde tutarsan, my.cnfbaşlamaz. Onlarla yorum yapın #.
( Http://dev.mysql.com/doc/refman/5.5/en/replication-options-slave.html adresinden türetilen bilgi )

Etkilenen seçenekler bu listede gösterilmektedir:

 --master-host
 --master-user
 --master-password
 --master-port
 --master-connect-retry
 --master-ssl
 --master-ssl-ca
 --master-ssl-capath
 --master-ssl-cert
 --master-ssl-cipher
 --master-ssl-key

Mükemmel! Tam olarak beni neyin attığını. Teşekkürler.
— Jim W.

3

MySQL yapılandırmasındaki hatalardan kaynaklanıyor gibi görünüyor /etc/mysql/my.cnfve içinde dosyalar var /etc/mysql/conf.d/.

Benim durumumda bu yanlış bir bind-addressdeğerdi, çünkü makinemin IP adresi değişmişti ve MySQL artık bağlanamıyordu. Bu blog makalesinde bu konuda daha fazla bilgi almaktan çekinmeyin .


2

Başlangıç ​​sonrası işlemdeki ( /etc/init/mysql.conf) başarısızlıkları ayıklamak için iyi bir yol , başlangıç ​​başlangıç ​​günlüklerini denetlemektir:

sudo tail -f /var/log/upstart/mysql.log 

Bu bana bir soket hatası verdi:

error: 'Yerel MySQL sunucusuna soket üzerinden bağlanılamıyor

Benim durumumda grubun useraltındaki eksik bir ayardan kaynaklanıyordu [mysqld].my.cnf


1

11.10'dan 12.04'e yükselttikten sonra benzer bir MySQL hatası ("İş başlatılamadı") olduğunda, https://bugs.launchpad.net/ubuntu/+source/mysql-dfsg-5.1/+bug/ 573318? Yorum = hepsi benim için mükemmel çalıştı. Alıntı:

Benim için sorun, /etc/apparmor.d/local/usr.sbin.mysqld dosyasının yükseltmeden sonra mevcut olmamasıydı. Boş olanlardan bir tanesini el ile kopyaladım (yani yalnızca başlık yorumu vardı) ve sonra her şey yolunda gitmeye değerdi.


1

Benim için çözüm çizgiyi kaldırmaktı ...

set-variable = max_connections=200

... ki bu MySQL 3.x sözdizimi ve değiştirilmesi gerekiyor

max_connections=200

1

Ben de aynı sorunu yaşadım. Mysql my.cnf ana köle kopyaları olduğu ortaya çıktı. Kontrol et/var/log/mysql/error.log .

Umarım bu biraz yardımcı olur. Sadece iyi çalışan apparmor ile iki saatinizi harcamadan önce mysql ayarlarını kontrol edin.


1

Aynı sorunları yaşadım, benim için bind-addressdosyama uygunsuz bir şekilde yerleştirildi /etc/mysql/my.cnf. Yani my.cnf dosyasında doğru olmayan herhangi bir şey bu soruna neden olabilir gibi görünüyor. Günlüklerde konuyu belirten hiçbir şey bulamadım.


1

Benim sorunum boş alanın% 0'ıydı! Çifte kontrol :-)


1

/tmpİzinleri kontrol et . Bu sorunu yaşadım, birçok zaman googleing ve yeniden başlattıktan sonra /tmpizinlerin 755 olduğunu öğrendim .

777'ye çeviriyorum ve mysqliyi başlıyorum.



Bazı durumlarda, dosya sistemini değiştirerek veya /tmpyeni bölüme takarak.
— shgnInc

1

Mysqld-5.5.53 ubuntu 14.04.1'e otomatik güncelleme yapıldıktan sonra mysql başlamamıştır. Bu satırlar sistem günlüğümde ortaya çıktı:

Oct 27 06:05:51 hostname kernel: [  593.168925] init: mysql post-start process (4997) terminated with status 1
Oct 27 06:05:51 hostname kernel: [  593.178241] type=1400 audit(1477562751.231:31): apparmor="STATUS" operation="profile_replace" profile="unconfined" name
Oct 27 06:05:51 hostname kernel: [  593.204392] init: mysql main process (5032) terminated with status 1
Oct 27 06:05:51 hostname kernel: [  593.204404] init: mysql respawning too fast, stopped

Sorun bu dizini yaratarak çözüldü:

sudo mkdir /var/lib/mysql-files
sudo chmod 700 /var/lib/mysql-files
sudo chown mysql:mysql /var/lib/mysql-files
sudo /etc/init.d/mysql start

0

Amazon ec2 örneğinde çalışan Ubuntu 12.04'te bu sorunu çözmek için burada önerildiği gibi MySQL ve AppArmor sürümlerini güncelledik . Hala birkaç kez hata alıyorum ama MySQL otomatik olarak kendini yeniden başlatıyor.


1
Ubuntu'ya Sormaya Hoş Geldiniz! Bu soruyu teorik olarak cevaplayabilse de , cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantıyı sağlamak tercih edilir.
— Ringtail

0

Aynı hata mesajlarını aldım, ancak nedeni farklıydı. InnoDB tablolarım bozuldu, çünkü dosya sisteminin tamamı salt okunur moddaydı. /Etc/mysql/my.cf dosyasına şu satırı ekleyerek yolsuzluğu düzelttim

innodb_force_recovery = 1

MySQL'i başlattım:

sudo service mysql start

MySQL başladı ve tüm tabloları çöktüm / dışa aktardım. İnnodb_force_recovery'yi 0 (= varsayılan) olarak değiştirdim ve MySQL'i yeniden başlattım:

sudo service mysql restart

Ubuntu 12.04'ü MySQL 5.5 ile kullanıyorum. Sorunu bulmam uzun zaman aldı ve umarım bu cevabı olan birine yardım edebilirim. Ayrıca bkz. Http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html


0

Benim durumumda sorun /etc/mysql/my.cnfdosya izni idi.

Cenvenience için değiştirdim ama benzeri hatalara neden oldu

kernel: [604528.290448] type=1400 audit(1424350956.727:193): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=15008 comm="apparmor_parser"

my.cnfİzni 766 oldu ve 744 olarak değiştirdim ve üç hatalarının iki gittiler. Hala benzer bir hata mesajı var ancak mysql'in başlamasını engellemedi.

Bu yardımcı olur umarım...


0

Benim durumumda yanlış bir bind-addressbildiri yaptım . ifconfigEC2'nin özel IP adresini bulmak için koştum ve /etc/mysql/my.cnfdosyayı güncelledim .


0

Benim durumumda / tmp ile ilgili bir izin sorunu buldum. Tmp'nin dizin iznini 766'ya ayarlıyorum ve mysql servisini yeniden başlattım. Düzeltildi.

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.