Ubuntu 14.04 LTS'de MySQL 5.5'i MySQL 5.6'ya yükseltme


17

LAMP'ımı aşağıdaki komutlarla yükledim:

sudo apt-get update
sudo apt-get install apache2 apache2-suexec mysql-server php5-mysql
sudo mysql_secure_installation
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
sudo apt-get install phpmyadmin

Neredeyse bir yıl önceydi. Şimdi PHPMyAdmin'de aşağıdakileri görüyorum:

Server: Localhost via UNIX socket
Server type: MySQL
Server version: 5.5.43-0ubuntu0.14.04.1 - (Ubuntu)
Protocol version: 10
Web server
Apache/2.4.7 (Ubuntu)
Database client version: libmysql - 5.5.43
PHP extension: mysqli Documentation

MySQL sürümü 5.5.43-0ubuntu0.14.04.1'dir . Nasıl güvenli bir şekilde kurulumu ve kullanımı olabilir 5.6.4+ MySQL ı kullanmak gerekir olarak FULLTEXTbirlikte INNODB. Ben Ubuntu deposundaki paketler görüyorum, ama gerçekten herhangi bir çelişki veya kurulum sorunları önlemek gerekir.

Herhangi bir yardım için teşekkürler.

Yanıtlar:


22

Güvenli bir şekilde nasıl kurabilirim

Her zaman zor olacak.

Bir şey yapmadan önce lütfen 5.5 / 5.6 uyumluluk sayfasını okuyun . Zihin 1 2 arasındaki büyük fark:

MySQL 5.6.6'dan başlayarak, birkaç MySQL Server parametresinin varsayılanları önceki sürümlerden farklıdır. Bu değişikliklerin amacı, daha iyi bir performans sunmak ve veritabanı yöneticisinin ayarları manuel olarak değiştirme ihtiyacını azaltmaktır. Bu değişiklikler, geri bildirim aldığımız için gelecekteki sürümlerde olası revizyonlara tabidir.

Büyük değişikliklerden biri 5.5'in işlem günlüğü olarak 1 büyük dosya ve 5.6'nın birkaç dosya kullanmasıdır:

Bu nedenle, varolan bir MySQL kurulumunu yükseltiyorsanız, bu parametrelerin değerlerini önceki varsayılanlarından daha önce değiştirmediyseniz ve geriye dönük uyumluluk endişe kaynağıysa, bu parametreleri açıkça önceki varsayılanlarına ayarlamak isteyebilirsiniz. Örneğin, bu satırları sunucu seçenek dosyasına koyun:

 [mysqld] 
 innodb_file_per_table=0 
 innodb_checksum_algorithm=INNODB
 binlog_checksum=NONE

Çoğaltma kullanıyorsanız, bağlantının bu bölümüne dikkat edin:

Çoğaltma için kullanılan sunucuları yükseltmek için önce slave'leri, ardından master'ı yükseltin. Master ve köleleri arasındaki çoğaltma, hepsinin aynı explicit_defaults_for_timestamp değerini kullanması koşuluyla çalışmalıdır:

Köleleri indirin, yükseltin, istenen explicit_defaults_for_timestamp değeriyle yapılandırın ve yeniden getirin.

Köleler, master'dan alınan ikili günlüklerin formatından master'ın daha eski olduğunu (explicit_defaults_for_timestamp'ın girişinden önce gelir) ve master'dan gelen TIMESTAMP sütunlarındaki işlemlerin eski TIMESTAMP davranışını kullandığını anlar.

Master'ı indirin, yükseltin ve slave'lerde kullanılan explicit_defaults_for_timestamp değeri ile yapılandırın ve yeniden getirin.

Bu bir üretim sunucusuysa, bunu öncelikle bir test makinesinde denemenizi tavsiye ederim. 5.5'ten 5.6'ya oldukça zor bir geçiş yaşadık ve 5.6 ile yüklenmiş başka bir makine kurmayı seçtik ve yedekler oluşturmak ve bunları o makinedeki veritabanlarımıza yüklemek için mysldump kullanıyoruz. Ancak, büyük bir veritabanınız varsa (innodb hareket dosyalarının yeniden oluşturulması nedeniyle) bunun uzun zaman alacağını unutmayın.

Genel bir yöntem:

  • veritabanınızın (kullanıcılar, izlenebilir yapı ve tablo verileri) ve yapılandırma dosyanızın (muhtemelen /etc/mysql/my.cnf) yedeklerini oluşturmak için mysqldump kullanın
  • 5.5'i kaldırın. 5.5'i kaldırdıktan sonra innodb hareket dosyalarının gittiğini kontrol edin (ibdata1, ib_logfile0 ve ib_logfile1). 5.6 işlemin daha iyi bir sürümünü kullandığından, bunu da kullanacağınızı varsayıyorum ...
  • 5.6 yükle
  • Yeni yapılandırma dosyasını değiştirin ve 5.5 için değiştirdiklerinizi ekleyin (yukarıdaki bağlantıyı unutmayın) ve değişikliklerden herhangi birinin geçersiz olup olmadığını kontrol edin).
  • Yedeklemenizi 5.6'ya yükleyin (önce kullanıcılar). Yeni işlem dosyalarını yeniden oluşturacağından bunun biraz zaman alabileceğini unutmayın.

Komutlarda (yedeklemeyi yaptıktan sonra):

sudo apt-get remove mysql-server
sudo apt-get autoremove
sudo apt-get install mysql-client-5.6 mysql-client-core-5.6
sudo apt-get install mysql-server-5.6

2
Bilginiz için önce bir yedek aldım ve başarıyla bu komutla sudo apt-get remove mysql-server;sudo apt-get autoremove;sudo apt-get install mysql-client-5.6 mysql-client-core-5.6;sudo apt-get install mysql-server-5.6
yükledim

2
Güzel görünüyor evet: D Gratz! Orada ;-) düzenledi
Rinzwind

Bu yordam bu sunucudaki veritabanlarını siler mi?
Please_Dont_Bully_Me_SO_Lords

@EASI Hayır ama soru ... kötü. MySQL'i yükseltirken, kullanım dışı işlevler / parametreler / seçenekler / ayarlar için MySQL taraması yapmak için bir yedekleme oluşturmanız ve geri yüklemeniz gerekir.
Rinzwind
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.