Оновлення MySQL 5.5 до MySQL 5.6 на Ubuntu 14.04 LTS


17

Я встановив свій LAMP із такими командами:

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

Це було майже рік тому. Зараз у PHPMyAdmin я бачу таке:

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 - 5.5.43-0ubuntu0.14.04.1 . Як я можу безпечно і надійно встановити і використовувати MySQL 5.6.4+ як мені потрібно використовувати FULLTEXTз INNODB. Я бачу пакунки у сховищі Ubuntu, але мені справді слід уникати будь-яких конфліктів чи проблем з установкою.

Дякуємо за будь-яку допомогу.

Відповіді:


22

Як я можу безпечно встановити

Це завжди буде складно.

Будь ласка, прочитайте сторінку сумісності 5.5 / 5.6, перш ніж робити що-небудь. Розум 1 велика різниця між 2:

Починаючи з MySQL 5.6.6, декілька параметрів MySQL Server мають за замовчуванням, які відрізняються від попередніх версій. Мотивація цих змін полягає в тому, щоб забезпечити кращу продуктивність поза межами коробки та зменшити потребу адміністратора бази даних змінювати налаштування вручну. Ці зміни підлягають можливій редакції у майбутніх випусках, оскільки ми отримуємо зворотній зв'язок.

1 з великих змін полягає в тому, що 5.5 використовує 1 великий файл як журнал транзакцій, а 5.6 використовує декілька:

Тому, якщо ви оновлюєте існуючу установку MySQL, ви ще не змінили значення цих параметрів за попередніми налаштуваннями за замовчуванням, і зворотна сумісність викликає занепокоєння, можливо, ви захочете чітко встановити ці параметри до їх попередніх значень за замовчуванням. Наприклад, помістіть ці рядки у файл параметрів сервера:

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

Якщо ви використовуєте реплікацію, зверніть увагу на цю частину посилання:

Для оновлення серверів, що використовуються для реплікації, оновіть спочатку підлеглі, потім головний. Реплікація між ведучим та його веденими повинна працювати, за умови, що всі використовують одне і те ж значення express_defaults_for_timestamp:

Зніміть раби, оновіть їх, налаштуйте їх на потрібне значення явного_надійного_за_мітки та відновіть їх.

Раби розпізнаватимуть з формату бінарних журналів, отриманих від ведучого, що майстер старше (до введення явного_надійного_фотографа) і що операції над стовпцями TIMESTAMP, що надходять від ведучого, використовують стару поведінку TIMESTAMP.

Зніміть головний майстер, оновіть його та налаштуйте його з тим самим явним_defaults_for_timestamp значенням, яке використовується для рабів, і поверніть його назад.

Якщо це виробничий сервер, я б радив спершу спробувати це на тестовій машині. Ми пройшли досить складний перехід від 5,5 до 5,6 і вирішили встановити іншу машину, встановлену з 5.6, і використовувати mysldump для створення резервних копій та завантаження їх у наші бази даних на цій машині. Майте на увазі, що це займе багато часу, якщо у вас є велика база даних (через відтворення файлів транзакцій innodb).

Загальний метод:

  • використовувати mysqldump для створення резервних копій вашої бази даних (користувачів, структури траблів та даних таблиці) та вашого конфігураційного файлу (можливо, /etc/mysql/my.cnf)
  • Видаліть 5.5. Після видалення 5.5 перевірте, чи немає файлів транзакцій innodb (ibdata1, ib_logfile0 та ib_logfile1). Оскільки 5.6 використовує кращу версію транзакцій, я припускаю, що ви також використали б цю ...
  • Встановити 5.6
  • Змініть новий конфігураційний файл і додайте те, що ви змінили на 5.5 (пам’ятайте, що посилання вище та перевірте, чи якісь із змін стали недійсними).
  • Завантажте резервну копію в 5.6 (спочатку користувачі). Зверніть увагу, що це може зайняти трохи часу, оскільки воно відтворить нові файли транзакцій.

У командах (після створення резервної копії):

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
Для вашої інформації спершу я взяв резервну копію, потім успішно встановив її за допомогою цієї команди: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
YahyaE

2
Це добре виглядає так: D Gratz! Там я відредагував це у ;-)
Rinzwind

Чи процедура видаляє бази даних на цьому сервері?
Please_Dont_Bully_Me_SO_Lords

@EASI Ні, але питання ... погано. Під час оновлення mysql вам потрібно створити резервну копію та відновити її, щоб було сканувати mysql для застарілих функцій / параметрів / параметрів / налаштувань.
Rinzwind
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.