Обновление 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 имеют значения по умолчанию, которые отличаются от предыдущих выпусков. Мотивация для этих изменений заключается в том, чтобы обеспечить лучшую производительность при поставке и уменьшить необходимость для администратора базы данных изменять настройки вручную. Эти изменения могут быть пересмотрены в будущих версиях по мере получения обратной связи.

Одним из больших изменений является то, что 5.5 использует 1 большой файл в качестве журнала транзакций, а 5.6 использует несколько:

Поэтому, если вы обновляете существующую установку MySQL, еще не изменили значения этих параметров по сравнению с их предыдущими значениями по умолчанию, и возникает проблема обратной совместимости, вы можете явно установить для этих параметров их предыдущие значения по умолчанию. Например, поместите эти строки в файл параметров сервера:

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

Если вы используете репликацию, обратите внимание на эту часть ссылки:

Чтобы обновить серверы, используемые для репликации, сначала обновите ведомые устройства, а затем ведущие. Репликация между ведущим и его ведомыми устройствами должна работать при условии, что все используют одно и то же значение clear_defaults_for_timestamp:

Сбросьте ведомые устройства, обновите их, настройте их с желаемым значением явного_доступа_доступа_временной_метки и восстановите их.

Ведомые устройства по формату двоичных журналов, полученных от мастера, распознают, что мастер старше (предшествует введению manifest_defaults_for_timestamp) и что операции со столбцами TIMESTAMP, поступающими от мастера, используют старое поведение TIMESTAMP.

Отключите мастер, обновите его и настройте его с тем же значением clear_defaults_for_timestamp, которое используется на ведомых устройствах, и восстановите его.

Если это рабочий сервер, я бы посоветовал сначала попробовать это на тестовой машине. У нас был довольно сложный переход с 5.5 на 5.6 и мы решили установить другую машину, которая была установлена ​​с 5.6, и использовать mysldump для создания резервных копий и загрузки их в наши базы данных на этой машине. Имейте в виду, что это займет много времени, если у вас большая база данных (из-за пересоздания файлов транзакций innodb).

Общий метод:

  • используйте mysqldump для создания резервных копий вашей базы данных (пользователей, структуры trable и данных таблиц) и вашего конфигурационного файла (вероятно, /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.