“MySQL ana işlem yumurtlamadı: yürütülemiyor: böyle bir dosya ya da dizin yok”


56

Ben MySQL sahasında acemiyim, o yüzden benimle ayı.

Ben sadece 11: 10'dan 12.04'e yükseltme işlemini bitirdim.

Her şey herhangi bir hıçkı olmadan çalışmak gibiydi ve tüm yazılım ve ayarları iyi çalışıyor. MySQL dışında.

Denediğimde:

sudo start mysql

Bir hata alıyorum:

start: Job failed to start

Sorunun ne olduğunu nerede teşhis edebilirim? Ve (umarım) - nasıl çözülür?

( Bazı öneme sahipse, buradaki tavsiyeleri izleyerek otomatik başlatmayı devre dışı bıraktım )


Güncelleme 1:

Her iki çıktı da:

cat /var/log/mysql.err 
cat /var/log/mysql.log

boş.

Çıktı dmesg | grep mysql:

[ 1401.785141] type=1400 audit(1335619832.181:25): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=16165 comm="apparmor_parser"
[ 1401.791089] init: Failed to spawn mysql main process: unable to execute: No such file or directory

Güncelleme 2:

Aşağıda AWinter tarafından belirtildiği gibi - MySQL'in yükseltme sonrasında otomatik olarak kaybolduğu ve yeniden yüklenmesi gerektiğine benziyordu.

Yanıtlar:


48

Mysql-server-5.1 paketinin kaldırıldığından emin olun, yükseltme işleminden sonra da devam edebilir gibi görünüyor. Aynı hatayı yaşadım ve MySQL server 5.1 ve 5.5 'i temizlemek zorunda kaldım ve tekrar kurdum.

Öncelikle, güvenli olması için / var / lib / mysql / dizininizi yedekleyin.

sudo cp -R /var/lib/mysql/ ~/mysql

Bir sonraki temizleme MySQL (bu, php5-mysql ve phpmyadmin'in yanı sıra bir dizi başka kütüphaneyi de kaldıracak, bundan sonra bazı öğeleri yeniden yüklemek için hazırlanacaktır.

sudo apt-get purge mysql-server-5.1 mysql-common

/ Etc / mysql / klasörünü ve içeriğini çıkarın

sudo rm /etc/mysql/ -R

Daha sonra eski veritabanı dosyalarınızın hala / var / lib / mysql / içinde olduklarını kontrol edin, daha sonra klasöre geri kopyalamıyorlarsa, sonra da chown root: root

(sadece dosyalar artık mevcut değilse bunları çalıştırın)

sudo mkdir /var/lib/mysql/
sudo chown root:root /var/lib/mysql/ -R
sudo cd ~/mysql/
sudo cp * /var/lib/mysql/ -R

Sonra mysql sunucusunu kurun

sudo apt-get install mysql-server

Sonunda phpmyadmin ve php5-mysql gibi eksik paketleri tekrar kurun.


1
Mükemmel. Bir cazibe olarak çalıştı. Hepsi tekrar çalışıyor. Bir not: Bu dizini kaldırmak zorunda değildim sudo rm /etc/mysql/ -R- benim durumumda yoktu. Neyse - Neyse ki sadece Wordpress'i test etmek için yerel bir kurulum oldu .. Acaba gerçek bir sunucuda ne olacağını merak ediyorum o
radek

apt-get --reinstall install mysql-server-xx benim için iş yaptı.
Yashima

Bu benim için işe yaradı, ancak muhtemelen daha apt-get updateönce yapmalıydım , çünkü güvercin ve php5-mysql kaldırılmıştı. Bunları yalnızca güncellemeden sonra yeniden yükleyebilirim. Bir kere yaptım, her şey bir kez daha iyi çalışıyordu.
AntonChanning

Ben alıyorum -bash: cd: /var/lib/mysql/: Permission deniedve kullanmak sudo -ibile çalışmıyor.
Charlotte

@LittleBigBot Bunu düzeltmesi gereken bir değişiklik yaptım.
AWinter


12

Bu aynı sorunu vardı ve benim için InnoDB logfiles mysql beklediğinden farklı bir boyutta ve yükseltme sırasında sessizce başarısız oldu.

Günlük dosyası boyutlarını varsayılan yapılandırmadan farklı bir şeye ayarlayan 12.04'e yükseltmede silinen özel bir yapılandırma dosyasına sahiptim.

Dosyaları kaldırmanız gerekiyor: / var / lib / mysql / ib_logfile *

Dosyalar gittikten sonra, mysql şimdi başlatılabilir ve varsayılan boyutta yeni günlük dosyaları oluşturabilir.


Bingo. Bizim durumumuzda bir dev, innodb için bazı yapılandırma ayarlarını değiştirmişti (ve ne o ne de bunun bir soruna yol açabileceğini bilmiyordum). Bu, MySQL'in başlamasını engelledi. Bu yapılandırma dosyalarını silmek, MySQL'in başlatılmasına izin verdi.
gaoshan88

Tombala - innodb_log_file_size için config ayarını değiştirdi.
tweak2

9

Hataların çoğu, sunucuyu ayrıntılı olmayan arka plan dışı modda başlatarak ve çıktıyı izleyerek ortaya çıkacaktır:

sudo mysqld --verbose

7

Aynı sorunu yaşadım, ancak yukarıdaki cevapların hiçbiri bana yardımcı olmadı. Son bir umut olarak biraz disk alanı boşaltmaya çalıştım. Gereksiz günlük dosyalarını sadece bazı 2.5G alanını alan / var / log'dan kaldırdım. Sonra MySQL normal olarak başladı.


Evet, bu benim de sorunumdu. MySQL açılışta olduğu gibi başlamadı. Daha sonra terminale açılan Sistem bilgisi; “/ /% 95.1 kullanımı” Bu yüzden, mysql (ve diğer işlemler) 'in başlaması için yeterli boş alan yoktu. Bazı dosya temizleme yapmak gerekiyordu ve mysql sorunsuz bir şekilde başladı.
Screenack

Bu benim davamdı. Disk temizleme ve Mysql çalışmaya başlar.
Sergey Romanov

5

Bu bazen olur ve MySQL'in başlamamasına neden olabilecek birkaç farklı sorun olmasına rağmen, bildiğim en yaygın sorunlardan bazılarını buraya yazacağım:

NOT - En sık karşılaşılan sorunları açıkladığınız için, mysql hizmetini kaldırmayı ve yüklemeyi ya da basitçe yeniden yüklemeyi zaten denediğinizi farz ediyorum:

Kurmak - sudo apt-get install mysql-server mysql-client
Çıkarmak - sudo apt-get remove mysql-server mysql-client
Tahliye etmek (Dosyaları kaldırmak + Config) - sudo apt-get purge mysql-server mysql-client
Yeniden yüklemek için -sudo apt-get install --reinstall mysql-server mysql-client

  1. my.cnfdosya varsayılan dizinde değil. (Varsayılan olarak) ya /etc/my.cnfda içinde bulunmalıdır /etc/mysql/my.cnf.

  2. MySQL veri dosyalarının bulunduğu sabit sürücüde yeterli alan yok. Veritabanları çok büyür ve sabit sürücünün% 100'ünü alırsa, hizmet başarısız olur.

  3. Yükseltmeden sonra, my.cnfdosyanın doğru yerde olup olmadığını kontrol edin . Eğer yükseltilmiş nasıl ya da yükseltme sürümünü dan bağlı olarak olabilir /etc/my.cnfveya /etc/mysql/my.cnfdaha önce belirtildiği gibi. Ayrıca, dosyanın mysql.confyalnızca adlandırılmayacağını ve adlandırılabileceğini unutmayın my.cnf. Bu, ikili dosyayı mysql.com adresinden indirdiğiniz durumlarda gerçekleşir .

  4. Bir yaparak dmesgbu yükleme hatası veriyor beri bir hata mesajı yardımcı olarak MySQL hizmeti atıyor olduğunu görmek için. Bunun neden olduğunu da söyleyebilir. Eğer yazarsanız dmesgterminalde yalnız size dünya gösterecektir. İstediğimiz şey mysql ile ilgili bilgidir, bu yüzden böyle bir şey yapın: dmesg | grep mysqlbu size içinde mysql içeren tüm satırları atar.

  5. Kontrol edin my.cnfveya mysql.confdosya doğrudur. 12.04'te MySQL sürüm 5.5, 11.10'da sürüm 5.1'dir. Conf dosyasında bazı değişiklikler olabilir (aslında bunu kontrol etmedim) ve aptalca gelebilir ama kesinlikle size biraz sorun çıkartabilir.

  6. İlgili hatalar problemleri soket normalde arıza mı my.cnfyoksa mysql.conf, bunlar hata normalde olarak gösterecektir yanlış yere işaret dosyası:

    Yerel MySQL sunucusuna '/var/run/mysqld/mysqld.sock' soketi üzerinden bağlanılamıyor

    Bu sorunun diğer kaynağı , yanlış klasöre işaret ettiği mysqldosyayla ilgilidir /etc/init.dçünkü sistemdeki gerçek mysql için gerekenden daha eski bir komut dosyası kullanıyor olabilir (doğru şekilde güncellenmemiş olabilir, üzerine yazmadı) config dosyası, etc ..). Bu yüzden bu iki dosyayı düzenleyin ve başka bir yere işaret edip etmediklerini görün ve sonra sudo service mysql restartçalışıp çalışmadığını kontrol etmek için bir yapın.

  7. MySQL'in hataya özel çıktılarına daha iyi bakmak için aşağıdakileri yapın:

    cat /var/log/mysql.err- MySQL hatalarını gösterecektir. cat /var/log/mysql.err | lessÇok fazla bilginin geçtiğini görüyorsanız, böyle bir şey çıktığını görürsem, böyle bir şey çıktığını görmenize lessyardımcı olacaktır cat.

    Aynısı için cat /var/log/mysql.logde geçerli Hatayı görüyorsanız, soruyu soruya sokmak veya yorum olarak bunu daha hızlı cevaplamanıza yardımcı olacaktır.

  8. Bağlantı sorunları ve gerçekten çalıştığı hizmetten muzdaripseniz, sunucunun Güvenlik Duvarı'nın 3306 bağlantı noktasından (Gelen bağlantılar) bağlantılara izin verip vermediğini kontrol etmeye çalışın. Daha sonra yönlendiricinin (varsa) 3306 numaralı bağlantı noktasını engellemediğini kontrol edin. Temelde mysql'ye atanan bağlantı noktasıyla ilgili sorunun nereden geldiğini görmek için bir ağ testi yapın.

Her şey yolundaysa, mysql hizmetinin çalışıp çalışmadığını test etmek için service mysql status

Son çare olarak. Eğer mysql kullanıyorsanız fakat giriş yapamıyorsanız aşağıdakileri deneyin:

  1. MySQL Sunucusunu durdur:

    sudo /etc/init.d/mysql stop veya sudo service mysql stop

  2. Başlangıç mysqldkılavuzu yapılandırma ile hizmete el

    sudo mysqld --skip-grant-tables &

    (Başka bir terminal açmak zorunda kalacağınız diğer eki eklemeyi unutmayınız. & İşlemi arka plana gönderir ve aynı terminali kullanarak onu öldürebilirsiniz).

  3. MySQL veritabanına KÖK olarak giriş yapın.

    mysql -u root mysql

  4. MyPASSWORD'u yeni şifrenizle değiştirerek aşağıdakileri yazın

    UPDATE user SET Password=PASSWORD('MyPASSWORD') WHERE User='root';
    FLUSH PRIVILEGES;
    EXIT;

Bu, Mysql servisinize tekrar root olarak giriş yapmalısınız. Umarım yardımcı olur.


Hızlı geri bildirim için teşekkür ederiz. my.cnf dosyası /etc/mysql/my.cnfbenim durumumda. Doğru yer burası mı? dmesgbana kavrayışımın ötesinde bir sonuç verdi: / gerçekten 5.1 yükledim - bunun bir sonucu var mı?
radek

1
Dosyayı bulursanız konumu hakkında endişelenmeyin. Dmesg'deki mysql çıktısına daha iyi bakmak için cevabı güncelleyeyim.
Luis Alvarado,

4

Ubuntu Server 12.04 LTS’e yükselttikten sonra da aynı sorunu yaşadım.

sudo apt-get install mysql-server 

Spotweb'in eski bir veritabanı hakkında şikayet etmesine rağmen, bunu düzeltmek için yeterliydi. Spotweb'i kaldırarak düzelttim:

sudo apt-get purge spotweb

ve mysql'yi yeniden yapılandırma:

sudo dpkg-reconfigure mysql-server-5.5

4

Bu olayı birisinin benzer sorunlarla karşı karşıya kalacağını ekleyeceğim. Tüm kaldırma ve yeniden yükleme boşuna çalıştı. Çözümü bulmanın anahtarı, başlangıçta hata klasörlerini bu klasöre yerleştirmesiydi.

/ Var / log / sonradan görme /

mysql için

/var/log/upstart/mysql.log

açtığımda bu mesajı vardı

/Etc/apparmor.d/tunables/global satırında /etc/apparmor.d/tunables/global satırında /etc/apparmor.d/tunables/global için AppArmor çözümleyici hatası: 'tunables / home' açılamadı

/Etc/apparmor.d/tunables/ klasörüne baktığımda, bir tane oluşturduğum ev dosyasını özlüyorum

gedit /etc/apparmor.d/tunables/home ve içeriği bu yorumlanmamış satırları olan başka bir bilgisayardan kopyaladı

@ {HOME} = @ {HOMEDIRS} / * / / kök /

@ {HOMEDIRS} = / ev /

Birisi burada benzer bir sorunla karşı karşıya

https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/982303

ondan sonra servisi yeniden başlatmayı başardım


2

Benim durumumda buradaki bazı cevaplardan çok daha kolaydı. İlgili hatayı launchpad'de buldum ve buradaki açıklama 9 yorumda belirtildiği gibi yapıldı.

sudo touch /etc/apparmor.d/local/usr.sbin.mysqld
sudo service apparmor restart

1

Yükseltme işleminden sonra, mysql-server / mysql-server-5.5'in kurulmadığını ve hiçbirinin 5.1 olmadığını gördüm. My.cnf dosyasını my.cnf_old olarak değiştirdim ve mysql-serven'i yüklemeye çalıştım. Kurulum sırasında root şifresinin ayarlanamadığı bir hata mesajı oluştu. Bundan sonra, configarmor ve benzeri ayarlarımı kontrol ettim. Hepsi iyi görünüyordu. Bir sonraki denemem mysql-server'ı yeniden yapılandırmaktı, ancak paketin tamamen kurulmadığından şikayet etti. Bu yüzden kaldırmaya karar verdim ve bu apt-get sırasında paketi düzelttim ve şimdi çalışıyor. Nedenini bilmiyorum çünkü hiçbir şeyi değiştirmedim.


1

Ben de benzer problemler yaşadım, ancak bu konuyu daha önce verdiğimi hatırladığım bir şekilde, hızlıca belirlendi.

Bu ayarlarda değişiklik yaparsanız ve sisteminiz apparmor kullanıyorsa, /etc/apparmor.d/usr.sbin.mysqld dosyasını da ayarlamanız gerekebilir. Örneğin. bu satırlar eklenmiştir (my.cnf'ye bir sembolik link vermek için ve sembolik linkli dosyanın muhtemelen okunabilmesi için).

/ usr / sbin / mysqld {... /etc/mysql/*.cnf lr, /path/to/symlinked/my.cnf r, ...}


1

Benim durumumda MySQL'i Ubuntu 12.04'ün yeni kurulumuna kurmaya çalıştım, fakat neden 'root' kullanıcısı için şifre belirlememde hata verdiğimi anlamadım. Yukarıdaki tüm çözümleri denedim ama yapacak bir şey yok.

Sonra herşeyi temizlemeye / silmeye karar verdim, MySQL sunucusunu kaldırdım ve tüm klasörlerini (/ etc / mysql / ve / var / lib / mysql /) kaldırdım, sonunda herhangi bir hata vermedi. yeniden yükleme ve ben şifre ayarlamak ve sunucu örneğini başlatmak başardı.


0

Terminalde tekrar kurabilir ve şunu yazabilirsiniz my.cnf'yi çalıştırır:

sudo apt-get install mysql-server-5.1
sudo apt-get --reconfigure mysql-server-5.1
sudo apt-get update
sudo start mysql my.cnf

bu şekilde işe yarayabilir.


0

Ben ekleyerek sorun yaşıyorum performance_schemaaltında [mysqld]yer /etc/mysql/my.confnedenleri bu başarısızlık. Bu satır kaldırıldı ve mysql yeniden başlayabildi.

Düzenleme: çıkıyor Bir performans ram sadece mysqld performansını performance_schema etkinleştirilmiş olarak başlatmak için yeterli değildir. 3 konsere çarptım ve iyi çalıştı.

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.