Memutakhirkan MySQL 5.5 ke MySQL 5.6 di Ubuntu 14.04 LTS

17

Saya telah menginstal LAMP saya dengan perintah berikut:

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

Itu hampir setahun yang lalu. Sekarang di PHPMyAdmin, saya melihat yang berikut:

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

Versi MySQL adalah 5.5.43-0ubuntu0.14.04.1 . Bagaimana saya bisa dengan aman dan aman menginstal dan menggunakan mysql 5.6.4+ yang saya butuhkan untuk menggunakan FULLTEXTdengan INNODB. Saya melihat paket-paket di repositori Ubuntu, tetapi saya benar - benar harus menghindari konflik atau masalah instalasi.

Terima kasih atas bantuannya.

YahyaE
sumber

Jawaban:

22

Bagaimana saya bisa menginstal dengan aman

Itu akan selalu rumit.

Silakan baca halaman kompatibilitas 5.5 / 5.6 sebelum melakukan sesuatu. Pikiran 1 perbedaan besar antara 2:

Dimulai dengan MySQL 5.6.6, beberapa parameter Server MySQL memiliki standar yang berbeda dari rilis sebelumnya. Motivasi untuk perubahan ini adalah untuk memberikan kinerja out-of-box yang lebih baik dan untuk mengurangi kebutuhan administrator database untuk mengubah pengaturan secara manual. Perubahan ini tunduk pada kemungkinan revisi di rilis mendatang karena kami mendapatkan umpan balik.

1 dari perubahan besar adalah bahwa 5.5 menggunakan 1 file besar sebagai log transaksi dan 5.6 menggunakan beberapa:

Oleh karena itu, jika Anda meningkatkan instalasi MySQL yang ada, belum mengubah nilai parameter ini dari default sebelumnya, dan kompatibilitas ke belakang menjadi perhatian, Anda mungkin ingin secara eksplisit mengatur parameter ini ke default sebelumnya. Misalnya, letakkan baris ini di file opsi server:

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

Jika Anda menggunakan replikasi, perhatikan bagian tautan ini:

Untuk memutakhirkan server yang digunakan untuk replikasi, perbarui dulu budak, lalu master. Replikasi antara master dan slave-nya harus bekerja asalkan semua menggunakan nilai yang sama dengan eksplisit_defaults_for_timestamp:

Turunkan para budak, tingkatkan mereka, konfigurasikan dengan nilai yang diinginkan dari eksplisit_defaults_for_timestamp, dan bawa kembali.

Budak akan mengenali dari format log biner yang diterima dari master bahwa master lebih tua (sebelum pengenalan eksplisit_defaults_for_timestamp) dan bahwa operasi pada kolom TIMESTAMP yang berasal dari master menggunakan perilaku TIMESTAMP lama.

Turunkan master, tingkatkan, dan konfigurasikan dengan nilai eksplisit_defaults_for_timestamp yang sama dengan yang digunakan pada slave, dan bawa kembali.

Jika ini adalah server produksi, saya akan menyarankan untuk pertama kali mencoba ini pada mesin pengujian. Kami mengalami transisi yang agak sulit dari 5,5 ke 5,6 dan memilih untuk menginstal mesin lain yang diinstal dengan 5.6 dan menggunakan mysldump untuk membuat cadangan dan memuatnya ke dalam basis data kami di mesin itu. Namun perlu diingat bahwa ini akan memakan waktu lama jika Anda memiliki database besar (karena rekreasi file transaksi innodb).

Metode umum:

  • gunakan mysqldump untuk membuat cadangan dari basis data Anda (pengguna, struktur trable dan data tabel) dan file konfigurasi Anda (mungkin /etc/mysql/my.cnf)
  • Hapus 5.5. Setelah menghapus 5.5 periksa apakah file transaksi innodb hilang (ibdata1, ib_logfile0 dan ib_logfile1). Karena 5.6 menggunakan versi transaksi yang lebih baik, saya asumsikan Anda juga akan menggunakan ini ...
  • Instal 5.6
  • Ubah file konfigurasi baru dan tambahkan apa yang Anda ubah untuk 5.5 (perhatikan tautan di atas dan periksa apakah ada perubahan yang menjadi tidak valid).
  • Unggah cadangan Anda ke 5.6 (pengguna pertama). Pikiran bahwa ini bisa memakan waktu karena akan membuat ulang file transaksi baru.

Dalam perintah (setelah membuat cadangan):

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
Rinzwind
sumber
2
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
Sekadar
2
Itu terlihat bagus ya: D Gratz! Di sana saya mengeditnya di ;-)
Rinzwind
Apakah prosedur itu menghapus database di server ini?
Please_Dont_Bully_Me_SO_Lords
@ EASI Tidak, tapi pertanyaannya adalah ... buruk. Saat memutakhirkan mysql, Anda perlu membuat cadangan dan mengembalikannya agar pemindaian mysql untuk fungsi / parameter / opsi / pengaturan yang sudah usang.
Rinzwind