Actualización de MySQL 5.5 a MySQL 5.6 en Ubuntu 14.04 LTS

17

He instalado mi LAMP con los siguientes comandos:

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

Fue hace casi un año. Ahora en PHPMyAdmin, veo lo siguiente:

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

La versión de MySQL es 5.5.43-0ubuntu0.14.04.1 . ¿Cómo puedo instalar de manera segura y el uso de MySQL 5.6.4+ , ya que necesito para usar FULLTEXTcon INNODB. Veo los paquetes en el repositorio de Ubuntu, pero realmente debería evitar cualquier conflicto o problema de instalación.

Gracias por cualquier ayuda.

YahyaE
fuente

Respuestas:

22

¿Cómo puedo instalar de forma segura y segura?

Siempre será complicado.

Lea la página de compatibilidad 5.5 / 5.6 antes de hacer nada. Mente 1 gran diferencia entre los 2:

A partir de MySQL 5.6.6, varios parámetros del servidor MySQL tienen valores predeterminados que difieren de las versiones anteriores. La motivación para estos cambios es proporcionar un mejor rendimiento inmediato y reducir la necesidad de que el administrador de la base de datos cambie la configuración manualmente. Estos cambios están sujetos a una posible revisión en futuras versiones a medida que obtengamos comentarios.

Uno de los grandes cambios es que 5.5 usa 1 archivo grande como registro de transacciones y 5.6 usa varios:

Por lo tanto, si está actualizando una instalación MySQL existente, no ha cambiado los valores de estos parámetros de sus valores predeterminados anteriores y la compatibilidad con versiones anteriores es una preocupación, es posible que desee establecer explícitamente estos parámetros a sus valores predeterminados anteriores. Por ejemplo, ponga estas líneas en el archivo de opciones del servidor:

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

Si usa la replicación, preste atención a esta parte del enlace:

Para actualizar los servidores utilizados para la replicación, actualice primero los esclavos, luego el maestro. La replicación entre el maestro y sus esclavos debería funcionar siempre que todos utilicen el mismo valor de explicit_defaults_for_timestamp:

Baje a los esclavos, actualícelos, configúrelos con el valor deseado de explicit_defaults_for_timestamp y vuelva a subirlos.

Los esclavos reconocerán por el formato de los registros binarios recibidos del maestro que el maestro es más antiguo (anterior a la introducción de default_defaults_for_timestamp) y que las operaciones en las columnas TIMESTAMP que provienen del maestro usan el antiguo comportamiento TIMESTAMP.

Despliegue el maestro, actualícelo y configúrelo con el mismo valor_defaults_for_timestamp utilizado en los esclavos, y vuelva a activarlo.

Si se trata de un servidor de producción, recomendaría intentarlo primero en una máquina de prueba. Hemos tenido una transición bastante difícil de 5.5 a 5.6 y optamos por instalar otra máquina que se instaló con 5.6 y usar mysldump para crear copias de seguridad y cargarlas en nuestras bases de datos en esa máquina. Tenga en cuenta que esto llevará mucho tiempo si tiene una base de datos grande (debido a la recreación de los archivos de transacciones innodb).

Un método general:

  • use mysqldump para crear copias de seguridad de su base de datos (usuarios, estructura de trables y datos de la tabla) y de su archivo de configuración (probablemente /etc/mysql/my.cnf)
  • Eliminar 5.5. Después de eliminar 5.5, verifique que los archivos de transacciones innodb hayan desaparecido (ibdata1, ib_logfile0 e ib_logfile1). Como 5.6 usa la mejor versión de las transacciones, supongo que también usarías esto ...
  • Instalar 5.6
  • Cambie el nuevo archivo de configuración y agregue lo que cambió para 5.5 (tenga en cuenta el enlace de arriba y verifique si alguno de los cambios no es válido).
  • Cargue su copia de seguridad en 5.6 (los usuarios primero). Tenga en cuenta que esto puede llevar un poco de tiempo, ya que recreará nuevos archivos de transacción.

En comandos (después de hacer la copia de seguridad):

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
fuente
2
Para su información, primero hice una copia de seguridad y luego la 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
instalé
2
Eso se ve bien sí: D Gratz! Allí lo edité en ;-)
Rinzwind
¿Ese procedimiento borra las bases de datos en este servidor?
Please_Dont_Bully_Me_SO_Lords
@EASI No, pero la pregunta es ... mala. Al actualizar mysql, debe crear una copia de seguridad y restaurarla para tener un análisis de mysql en busca de funciones / parámetros / opciones / configuraciones obsoletas.
Rinzwind