Apt-get kullanarak Debian'da MySQL'i nasıl yükseltebilirim?


13

Anahtar Teslim Linux sanal makinesini kullanıyorum. Orada Debian sürümü görünüşte "Wheezy" yükseltme yolunda (eğer böyle diyorsan). Gördüğünüz gibi Linux ile tamamen rahat değilim.

Mevcut kurulumum MySQL 5.5.35 iken, MySQL 5.6'nın sunduğu bazı yeni özelliklere ihtiyacım var. En son sürümü (bu gönderi itibariyle 5.6.17) veya en azından 5.6.x sürümünü almak istiyorum.

Denedim apt-get update, apt-get upgrade, apt-get dist-upgrade. Bunlar bir sürü şeyi başarıyla güncelledi, ancak hiçbiri MySQL değildi. Denedim apt-get upgrade mysql-server, zaten en son sürüme sahip olduğumu söylüyor.

Web'de Debian Wheezy paket havuz listesi MySQL 5.5 ve başka bir şey göstermiyor. Daha sonra "backport" hakkında bir şeyler okudum, ki bu bana belirli Debian'ımın henüz sahip olmaması gereken şeyleri getirebiliyormuş gibi geliyor - ama çalıştıramayacak gibi görünmüyorum. İçin satır eklemeyi gerektirir /etc/apt/sources.list.d/sources.list. Bunu yapmaya çalıştığımda çalıştığımda apt-get update404 hatası alıyorum.

Ben de birkaç yol denedim, biri sefil başarısız oldu ve yerine tekrar denemek olmaz vanilya MySQL indir, derleme.

Bunun nasıl yapıldığına olumlu şaşkınım. Forumlarda / bloglarda listelenen apt-getve hatta için listelenen URL'lerin çoğu, wgetgönderildikten kısa bir süre sonra ölüyor gibi görünüyor, bu yüzden kimsenin doğru bilgileri bulma konusunda nasıl gittiğini anlayamıyorum. Bunu iki gündür yapmaya çalışıyorum ve hiçbir yere ulaşamıyorum.

Şimdiye kadar okuduğunuzu varsayarak, Debian'da MySQL'i nispeten ağrısız otomatik bir şekilde (herhangi bir makemevcut veritabanımı ve yapılandırmamı manuel olarak kullanmam veya dışa aktarmam / içe aktarmam gerekmediği) yükseltmenin herhangi bir yolu olup olmadığını bilmek isterim ).


Test / kararsız / deneysel bir backport yapın. Bkz. Debian'ın sağladığından daha yeni yazılım sürümlerini nasıl yükleyebilirim? . Daha iyisi, zaten backport'lara sahip PostgreSQL'i kullanın. "/Etc/apt/sources.list.d/sources.list'e satır eklemeyi gerektirir. Bunu yapmaya çalıştığımda apt-get güncellemesini çalıştırdığımda 404 hataları alıyorum." Yardım istiyorsanız, bununla ilgili daha fazla ayrıntı eklemeniz gerekir.
Faheem Mitha

@faheemMitha Meraktan, şu postgresql backport'ları nerede buldun? Yeni sürüme ve slonyyeteneklere ihtiyacım var ve 9.1'den daha yeni bulamadım, ki bu da slony eksikti.
Shadur

@Shadur: Sadece "postgresql debian backports" araması yapın. Bence istediğiniz şey postgresql.org/download/linux/debian . Çoğunlukla backports.de back.org.debian.org adresinden alabilirsiniz, ancak şu anda orada bulunmuyor gibi görünüyor.
Faheem Mitha

@faheemMitha Ben tam hatayı yapıştırın ama artık yok, ve artık kullandığım backport URL'leri nerede olduğundan emin değilim. Yine de bir çalışma hattını biliyorsanız, backports için kaynaklar.listeme ekleyebilirim, denemek isterim. PS. Farklı bir veritabanı platformuna geçmek maalesef bu noktada benim için gerçekten bir seçenek değil.
equazcion

@equazcion Benim tavsiyem bir DIY çözümü. Debian kaynaklarını testten (veya dengesiz veya deneysel) getirin ve bunları kendi Debian paketlerinize yeniden oluşturun. Bu gerçekten o kadar da zor değil ve MySQL'in bağımlılıkları çözmesi zor değil. Bağlantı kurduğum cevaptaki temel adımları açıklarım. Baktın mı?
Faheem Mitha

Yanıtlar:


4

Deneysel 5.6 Wheezy üzerinde deneysel MySQL kaynakları yeniden oluşturmak önemsiz sınır komşudur. Ancak, çok fazla disk alanına ihtiyacınız olacaktır; derleme tamamlandıktan sonra derleme dizini 5.2 GB kullanıyordu. Ayrıca, inşa etmek biraz zaman alır ve inanılmaz sayıda test gerçekleştirir. Ben zaman rahatsız etmedi, ama birkaç saat izin. Testleri devre dışı bırakmak mümkündür, ancak çalışmasına izin vermenizi öneririm - geçtikleri sürece zararsızdır. Benim makinemde yaptılar. İyi haber şu ki, onu karışıklık olmadan inşa edip kurabildim. Aşağıdaki temel testi yaptım.

faheem@orwell:~$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 50
Server version: 5.6.16-1~exp1 (Debian)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

Yani, en azından sunucuya bağlanabiliyorum. Paketler kurulu gibi görünüyor:

$ dpkg -l | grep mysql

ii  libdbd-mysql-perl                     4.021-1+b1              amd64                   Perl5 database interface to the MySQL database
ii  libmysqlclient18:amd64                5.5.35+dfsg-0+wheezy1   amd64                   MySQL database client library
ii  libqt4-sql-mysql:amd64                4:4.8.2+dfsg-11         amd64                   Qt 4 MySQL database driver
ii  mysql-client-5.6                      5.6.16-1~exp1           amd64                   MySQL database client binaries
ii  mysql-client-core-5.6                 5.6.16-1~exp1           amd64                   MySQL database core client binaries
ii  mysql-common                          5.5.35+dfsg-0+wheezy1   all                     MySQL database common files, e.g. /etc/mysql/my.cnf
ii  mysql-common-5.6                      5.6.16-1~exp1           all                     MySQL 5.6 specific common files, e.g. /etc/mysql/conf.d/my-5.6.cnf
ii  mysql-server-5.6                      5.6.16-1~exp1           amd64                   MySQL database server binaries and system database setup
ii  mysql-server-core-5.6                 5.6.16-1~exp1           amd64                   MySQL database server binaries
ii  python-mysqldb                        1.2.3-2                 amd64                   Python interface to MySQL

İşte adımların dökümü.

  1. Wheezy MySQL 5.5 paketlerinden herhangi biri yüklüyse, bunları kaldırın, ancak daha sonra sorun yaratacaktır. Bunlara bağlı herhangi bir paket varsa, onlar da gitmelidir.
  2. İlk olarak kaynakları alın. Aşağıdakileri (veya benzerlerini, tercih ettiğiniz sunucu için ayarlamayı) eklemeniz gerekir /etc/apt/sources.list:

    deb-src http://debian.lcs.mit.edu/debian/ experimental main non-free contrib
    
  3. Ayrıca etmek aşağıdakileri ekleyin /etc/apt/preferences.

    Package: *
    Pin: release a=experimental
    Pin-Priority: 1
    
  4. O zaman koş

    apt-get update
    
  5. O zaman koş

    apt-get source mysql-5.6
    

    bazı uygun dizinde. Genellikle bir dizin oluşturmak /usr/local/src,
    bu durumda, demek /usr/local/src/mysql.

  6. Sonra cd içine /usr/local/src/mysql.

  7. Çalıştırmak

    sudo apt-get build-dep mysql-5.6
    

    Makinemde bu birkaç paket kurdu.

  8. Bina için bazı temel paketleri kurun.

    apt-get install build-essential devscripts fakeroot
    

    Sonra ortaya çıkan kaynak dizine cd /usr/local/src/mysql/mysql-5.6- 5.6.16ve çalıştırın

    debuild -uc -us
    

    Bu işlem biraz zaman alacak. Bazı durumlarda
    sürüm numarasını artırmak iyi bir fikirdir , ancak burada gerçekten gerekli değildir. diğer MySQL 5.6 paketlerinin olası olmadığı için hırıltılı hale gelecektir.

    Testleri çalıştırmak istemiyorsanız,

    DEB_BUILD_OPTIONS="nocheck" debuild -uc -us
    
  9. Şimdi mysql paketlerinin çalışma zamanı bağımlılığı olan libdbd-mysql-perl'i kurmalısınız.

     apt-get install libdbd-mysql-perl
    
  10. Sonra bir seviye yukarı cd /usr/local/src/mysql. Orada bazı deb paketleri olmalı. En azından yüklemek isteyeceksiniz

     mysql-client-core-5.6_5.6.16-1~exp1_amd64.deb         
     mysql-common-5.6_5.6.16-1~exp1_all.deb           
     mysql-server-5.6_5.6.16-1~exp1_amd64.deb
     mysql-client-5.6_5.6.16-1~exp1_amd64.deb  
     mysql-server-core-5.6_5.6.16-1~exp1_amd64.deb
    

    Bu, örneğin:

     dpkg -i mysql-client-core-5.6_5.6.16-1~exp1_amd64.deb         
     mysql-common-5.6_5.6.16-1~exp1_all.deb           
     mysql-server-5.6_5.6.16-1~exp1_amd64.deb
     mysql-client-5.6_5.6.16-1~exp1_amd64.deb  
     mysql-server-core-5.6_5.6.16-1~exp1_amd64.deb
    

Her şeyden önce, bunun için ve tüm çabalarınız için teşekkürler. Bu, 8. adımda başarısız oldu. Ben bu / debian / yolları yok gibi görünüyor: dpkg-buildpackage: host architecture amd64 fakeroot debian/rules clean Can't exec "fakeroot": No such file or directory at /usr/bin/dpkg-buildpackage line 510. dpkg-buildpackage: error: fakeroot debian/rules clean failed with unknown exit code -1 debuild: fatal error at line 1357: dpkg-buildpackage -rfakeroot -D -us -uc failed Ben yardımcı olur, LAMP kullanır düşünüyorum Anahtar Teslimi Linux bunu yapıyorum.
equazcion

@equazcion fakeroot kurulu olmayabilir. apt-get install fakeroot.
Faheem Mitha

Fakeroot kurulumu çalıştı. Son adım, MySQL 5.5'i kıracağını söyleyerek hata yaptı. Önerdiğin gibi 5.5'i kaldırmayı ihmal ettim, çünkü nasıl olduğunu bilmiyorum ve mevcut veritabanlarımı nasıl etkileyeceğinden emin değildim. 5.5 sürümü kaldırdıktan sonra tekrar denemeye hazırım, eğer verilerimi yeni sürümde mevcut tutacak şekilde nasıl yapacağımı söylemek isterseniz. Yine de MySQL'e aşina olmadığınızı biliyorum ve bu konuda biraz zaman harcadınız. Bu harika bir başlangıç ​​oldu ve belki geri kalanı ile geri kalanını nasıl yapacağımı öğrenebilirim.
equazcion

@equazcion göre dev.mysql.com/doc/refman/5.6/en/… sadece dökümünü boşaltmanız mysqldumpve daha sonra döküm dosyasını yeniden yüklemeniz gerekir. Tabii ki veritabanlarınızı da destekleyin.
Faheem Mitha

Tüm adımları yeniden yapmadan bunu kurtarmayı başardı ve veritabanlarını yeniden içe aktarmaya gerek yoktu - zaten oradaydılar. İlgilenen herkes için, apt-get remove mysql-serverve son adımdan önce apt-get remove mysql-clientyapmak zorunda kaldım apt-get install libterm-readkey-perl. Ayrıca, mysql-server-coreson adımda kurulum daha önce yapılmalıdır mysql-server. Artık resmi olarak MySQL 5.6.16 kullanıyorum ve tam metin InnoDB arama dizinlerini başarıyla test ettim (buna ihtiyacımın nedeni)! Teşekkürler Faheem Mitha. Aklımı kurtardın.
equazcion

6

Şu anda en iyi seçenek, kuruluma izin veren resmi MySQL APT repo'yu kullanmaktır apt-get upgrade.


Bu muhtemelen en iyi çözümdür çünkü bir derleyicinin kurulmasını gerektirmez. Daha aptal geçirmez :)
Christopher Schultz

Bu çözüm benim için çalışıyor. Kurulumdan sonra, mysql sunucu sürümünü seçin ve yükseltin apt-get upgrade, sonra yapacağım apt-get upgrade mysql-serverve mysql'in 5.5'ten 5.7'ye kolay yükseltilmesi. Yükseltmeden sonra tekrar yapılandırmanız ve çalıştırmanız gerekir:mysql_upgrade -u root
fermin

1

Tüm Test Edilmiş Eğlenin.

  1. .apt-get install libaio1
  2. grup ekle mysql
  3. useradd -r -g mysql mysql
  4. wget -O mysql-5.6.16-debian6.0-x86_64.deb
  5. http://downloads.mysql.com/archives/mysql-5.6/mysql-5.6.16-debian6.0-x86_64.deb
  6. dpkg -i mysql-5.6.16-debian6.0-x86_64.deb
  7. cd / usr / yerel
  8. ln -s /opt/mysql/server-5.6 mysql
  9. cd mysql
  10. komut dosyaları / mysql_install_db --user = mysql
  11. chown -R kökü.
  12. chown -R mysql verileri
  13. cp destek dosyaları / mysql.server /etc/init.d/mysql
  14. mkdir -p /etc/mysql/conf.d/
  15. cp my.cnf / etc / mysql /
  16. echo $ '! include /etc/mysql/my.cnf\n!includedir /etc/mysql/conf.d/'> my.cnf
  17. hizmet mysql başlangıç
  18. ./bin/mysql_secure_installation

Bu (üzgün karışıklık için, burada satır başı eklemek için nasıl bilmiyorum) Buraya kadar iyi gidiyor gibi görünüyordu root@lamp local/mysql# update-rc.d mysql-5.7 defaults: update-rc.d: using dependency based boot sequencing update-rc.d: error: unable to read /etc/init.d/mysql-5.7 root@lamp local/mysql# service mysql start: Starting MySQL [FAIL......[....] The server quit without updating PID file (/opt/mysql/server-5.6/data/lamp.pid). ... failed!
equazcion

/etc/init.d/mysql start ile deneyin veya /etc/init.d/mys adresindeki sekme sekmesine basmayı deneyin ve başlatın
Security Beast

@equazcion Tebrikler, şimdi debian'ın bazen yeni bir sürüm için resmi bir paket bulmak için neden biraz zaman aldığını keşfettiniz.
Shadur
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.