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.