Ubuntu 14.04'e MySQL 5.6 kurulumu neden başarısız oldu?


30

Meraktan sadece Ubuntu 14.04'teki MySQL 5.6'ya bakmak istedim. Ve bu makaleye dayanarak kesinlikle kurulum basit ve anlaşılır olmalı gibi görünüyordu. Böylece Ubuntu 14.04 (64-bit) çalıştıran, bozulmamış örneğime (PuTTY üzerinden) giriş yapan ve aşağıdaki komutları verdiğim bir AWS EC2 mikro sunucusunu başlattım:

$ sudo apt-get update
$ sudo apt-get build-dep mysql-server-5.6
$ sudo apt-get install mysql-server-5.6

(İlk iki komut, yalnızca apt-get installtek başına koşmak daha önce işe yaramadığı için çaresizlik hareketleriydi . Ancak her üç komutta bile, yükleme adımı hala işe yaramadı.)

Beklediğim noktada, yukarıda belirtilen makaleye dayanarak, bu çıktının son komuttan çıkmasını görmek için:

mysql start/running, process 2355  
Setting up libhtml-template-perl (2.95-1) ...  
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...  
Processing triggers for libc-bin (2.19-0ubuntu6) ...  
Processing triggers for ureadahead (0.100.0-16) ...  

Bunun yerine bunu aldım:

start: Job failed to start  
invoke-rc.d: initscript mysql, action "start" failed.  
dpkg: error processing package mysql-server-5.6 (--configure):  
 subprocess installed post-installation script returned error exit status 1  
Setting up libhtml-template-perl (2.95-1) ...  
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...  
Processing triggers for libc-bin (2.19-0ubuntu6) ...  
Processing triggers for ureadahead (0.100.0-16) ...  
Errors were encountered while processing:  
 mysql-server-5.6  
E: Sub-process /usr/bin/dpkg returned an error code (1)

Neyin yanlış gittiğini gören var mı?


1
kütük ne diyor? cat /var/log/mysql.err
Paté

Yanıtlar:


22

Karşılaştığınız sorun bu hata raporuyla aynı görünüyor . Başlangıç ​​başarısızlığı, varsayılan MySQL 5.6 yapılandırmasının, mikro örneğinizde alabileceğinden daha fazla bellek gerektirmesi nedeniyle gözüküyor.

Hatanın çözümü, aşağıdakilerden birini yapmak gibi görünüyor:

  • EC2 örneğinizdeki bellek miktarını artırın
  • MySQL'in max_connectionsdeğişkeni için daha küçük bir değer belirleyin

1
Evet, bu sorun tam olarak bu hata raporunda gösterilen hatadır. Teşekkürler! Şimdiye kadar /etc/apparmor.d/local/usr.sbin.mysqld dosyasının var olduğunu ve maalesef bunu yapmadığını garanti etmek için önerilen hızlı çözümü denedim. Şimdi daha fazla hafızalı bir kurulum deneyeceğim.
WebLearner

1
Bir sonraki deneme için, bir EC2 örneği kullanmak yerine, Oracle VM Sanal Kutusu'nu kullanarak 2 GB belleğe sahip bir Ubuntu 14.04 sanal makinesi oluşturdum ve bu ortamda MySQL 5.6 kurulumu bir aksama olmadan yoluna girdi sudo apt-get install mysql-server-5.6. Bu yüzden kesinlikle bir EC2 mikro örneğinin apt-get kullanarak MySQL 5.6'yı kurmak için yeterli belleğe sahip olmadığı görülüyor!
WebLearner

1
MySQL 5.6'yı yüklemeden önce MySQL'in max_connections değerini azaltmayı öneren hata raporuna ek bir yorum eklendi. Bu tavsiyeyi aldım ve iki satır içeren /etc/mysql/conf.d dosyasına bir .cnf dosyası ekledi: "[mysqld]" ve "max_connections = 20". Bu dosya yerindeyken, taze bir EC2 mikro MySQL kurulumum üzerinden geçti. (Belgelere göre, max_connections için varsayılan değer 151'tir. 20'ye ayarlanması muhtemelen aşırıdır. Ancak en azından MySQL'in kurulmasının mümkün olduğunu göstermektedir.)
WebLearner

Ek bilgi için: /var/lib/dpkg/info/mysql-server-5.6.postinst 'i kontrol ediyorum ve bu betiği, kesin olan adımları tekrarlamak için çalıştırabileceğinizi
öğrendim

Serserimin üzerinde çalışıyor, 1G RAM'i ayarlayıp düzelttim. teşekkür ederim. : D
Chu-Siang Lai,

24

Küçük VPS'imi başlattığımda da aynı sorunla karşılaştım. Sorun küçük bellek kaynaklanır. Böylece, ihtiyaç duymadığınız belleği arttırmak için fazladan para harcamadan, kuruluma yardımcı olmak için takas dosyaları oluşturabilirsiniz. Evet takas işlemi yavaş, ancak ihtiyacınız olan tek şey yüklemeyi tamamlamak.

Ubuntu 14.04'te sorunu çözmek için aşağıdakileri yapıyorum:

4G takas dosyası oluşturun:

sudo fallocate -l 4G /swapfile

İzni sadece root olarak değiştirebilir ve erişebilir:

sudo chmod 600 /swapfile

Takas yap:

sudo mkswap /swapfile

etkinleştirin:

sudo swapon /swapfile

Şimdi tekrar mysql kurmayı deneyebilirsiniz, bu sefer başarılı olmalı. Bunu yapmadan önce başarısız olan önceki yüklemeyi kaldırmayı unutmayın.


Evet, mükemmel cevap. Kesinlikle harika.
Wren

3

Ben de aynı problemle karşılaştım. VM'me verilen 12GB büyük hafızaya sahip olmama rağmen, yine de söz konusu olan şeyler başarısız oldu. Bir süre harcadıktan sonra, varsayılan apt get öğesinin bazı yapılandırma çevirisi ve araç çeviri paketlerinin eksik olduğunu tespit etti.

MySQL apt deposu, MySQL ürünlerini kullanarak en yeni yazılım paketlerini kurmak ve güncellemek için basit ve kullanışlı bir yol sunar apt-get. İşte izlemeniz gerekenler:

  1. MySQL APT Deposunu Ekleme Önce, MySQL apt deposunu sisteminizin yazılım deposu listesine ekleyin. Bu adımları takip et:

    • Http://dev.mysql.com/downloads/repo/apt/ adresindeki MySQL apt deposu için indirme sayfasına gidin .

    • Sürüm paketini seçin ve indirin.

    • İndirilen sürüm paketini aşağıdaki komutu kullanarak kurun, sürüme özgü paket adını, indirilen paketin adıyla değiştirin (komutu, paketin bulunduğu klasörün içinde çalıştırmıyorsanız, yolundan önce gelir):

      sudo dpkg -i /PATH/version-specific-package-name.deb
      

    Aynı paketin tüm desteklenen Debian ve Ubuntu platformlarında çalıştığını unutmayın.

    • Paketin kurulumu sırasında, kurmak istediğiniz MySQL sunucusunun ve diğer bileşenlerin (örneğin, MySQL Workbench) sürümlerini seçmeniz istenecektir. Hangi sürümü seçeceğinizden emin değilseniz, sizin için seçilen varsayılan seçenekleri değiştirmeyin. Belirli bir bileşenin kurulmasını istemiyorsanız hiçbirini de seçebilirsiniz. Tüm bileşenlerin seçimlerini yaptıktan sonra, sürüm paketinin yapılandırmasını ve kurulumunu tamamlamak için Tamam'ı seçin.

    daha sonra sürümler için tercihlerinizi her zaman değiştirebilirsiniz;
    talimatlar için bkz. Major Release Version Seçme.

    • MySQL APT deposundan paket bilgilerini aşağıdaki komutla güncelleyin (bu adım zorunludur):

      sudo apt-get update
      
  2. MySQL'in APT ile Kurulumu

    • MySQL'i aşağıdaki komutu kullanarak kurun:

      sudo apt-get install mysql-server
      

Bu, MySQL sunucusu için paketin yanı sıra istemciye ve veritabanı ortak dosyalarına yönelik paketleri de yükler.

Yükleme sırasında, iletişim kutularının iki isteği vardır: MySQL kurulumunuz için kök kullanıcı için bir şifre girin.

  1. MySQL Sunucusunu Başlatma ve Durdurma

MySQL sunucusu kurulumdan sonra otomatik olarak başlatılır. - MySQL sunucusunun durumunu aşağıdaki komutla kontrol edebilirsiniz:

sudo service mysql status
  • MySQL sunucusunu aşağıdaki komutla durdurun:

    sudo service mysql stop
    
  • MySQL sunucusunu yeniden başlatmak için aşağıdaki komutu kullanın:

    sudo service mysql start
    

Bunu http://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install olarak takip ettim . Bu sorunsuz çalıştı ve tüm paketleri indirdi ve başarıyla yüklendi mysql 5.6.


Sağol David. Bu mantıklı. Cevabı daha ayrıntılı adımlarla değiştirdim. Teşekkürler.
Ritesh

Gelişmiş cevap için +1.
David Foerster

son bendim… gerçekten ben miyim? :)
hızlı

2

Benim durumumda ekledim

innodb_buffer_pool_size = 20M

-e /etc/mysql/my.cnf


1
Kullanıcı MySQL'in kurulmasında sorun değil, kullanmıyor.

Teşekkürler, ben soruyu okudum) yükleme sırasında aynı sorunu aldım. Aslında kurulum bitti ve mysql zaten servis olarak erişilebilirdi ve onu çalıştırabilirdik. Ancak yükleme işleminin son adımında (MySQL başlatılıyor) bu can sıkıcı hatayı yakalıyoruz.
maxkoryukov


1

Bu sorunla Ubuntu 15.10'da karşılaştım. Benim için bir hafıza sorunu değildi (toplamda sadece 300 MB kullanılan 2GB koç ve 18GB takas seçeneğim var).

Benim durumumda, var dpkgdeğildi /etc/mysql/conf.d, ancak /etc/mysql/mysql.conf.dvardı! MySQL'i yeniden yüklemek ve klasörü manuel olarak oluşturmak /etc/mysql/conf.dsorunumu çözdü.

Bu tam olarak nasıl oldu? Hiç bir fikrim yok. Neredeyse cevabımı paylaşmak istemedim, çünkü bu çözüm benim bilgisayarıma özgü.

Bu sorunu strace, inanılmaz derecede ayrıntılı olsa bile, bu tür şeyler için harika olan yardımcı programını kullanarak çözdüm.

Bu şekilde kullandım:

  • Bastıktan sonra ctrlcyarı yolda apt-get install mysql-serverben çalıştırmak zorunda dpkg --configure -ayüklemeyi bitirmek için.

  • Kaçtım strace 2>/tmp/trace dpkg --configure -a. Bu bana güzel bir stracegiriş yaptı /tmp/trace.

  • Tomruktan baktım, özellikle aşağıdan, başarısız olduğu yere.

  • /etc/mysql/conf.dErişmeye çalıştığını ve ENOENT hata kodunu aldığımı, böyle bir dosya veya dizinin olmadığını farkettim .

Bunu yapmak isteyen herkes için, strace 2>/tmp/trace (command)ve grep için yap ENOENT. Söylediğim gibi, bu çözüm muhtemelen bilgisayarıma özgüdür, ancak bir denemek isteyebilirsiniz.


0

Benim durumumda tüm Yapmam gereken bazı değişiklikler yapmak oldu my.cnfve sadece 2 günlükleri dosyalar adında silmek ib_logfile0ve ib_logfile1ve mysql başlatmak

service mysql start

MySQL'i yeniden yüklemenize gerek yok, sadece bu 2 günlük dosyasını silin ve MySQL sunucusunu yeniden başlatın

Yaptığım değişikliklerin altında my.cnf:

max_connections     = 1000     
max_allowed_packet  = 1024M
wait_timeout        = 7200 

Lütfen başkalarının takip edebilmesi için cevabınıza biraz daha ekleyin.
George Udosen
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.