sql >> Base de Datos >  >> RDS >> Mysql

Rendimiento de MySQL:Conversión de MySQL a MariaDB

Como exploramos en nuestro artículo anterior de nuestra Serie de rendimiento de MySQL:MySQL vs. MariaDB hay muy pocas desventajas al usar MariaDB sobre MySQL estándar. Nuestros MariaDB de alta disponibilidad han demostrado ser un digno sucesor con inconvenientes fácilmente mitigables. Como último artículo de nuestra serie, nos centraremos en actualizar a varias versiones de MySQL y MariaDB en los siguientes servidores:

CentOS 6/7

  • MySQL a MariaDB en CentOS 6/7 con cPanel
  • MySQL a MariaDB en CentOS 7 con Plesk Onyx 17
  • MySQL 5.1-5.5 a MariaDB 5.5 en CentOS 6
  • MariaDB 5.5 a MariaDB 10.0 en CentOS 6

Ubuntu 14.04/16.04

  • MySQL 5.1-5.5 a MariaDB 5.5 en Ubuntu 14.04
  • MySQL 5.7 a MariaDB 10.2 en Ubuntu 16.04

Elegir un plan de actualización de MariaDB

Seleccionar el plan de actualización correcto requiere determinar qué versión de MySQL se ejecuta en el sistema deseado. Un método universal para determinar qué versión de MySQL está ejecutando actualmente el servidor es consultar el propio servidor para informar la versión. Esto funciona igual a pesar de que la distribución de Linux se ejecuta en el servidor:

mysql -h localhost -e 'SHOW VARIABLES LIKE "version"\G'

Salida de ejemplo:

~ $ mysql -h localhost -p -e 'SHOW VARIABLES LIKE "version"\G'
*************************** 1. row ***************************
Variable_name: version
Value: 5.5.61-MariaDB

Una vez que haya identificado su versión de MySQL, use la clave a continuación para ubicar el procedimiento de actualización correcto para su servidor en particular. Algunas versiones de MySQL requieren una actualización a MariaDB 5.5 antes de actualizar a las versiones MariaDB 10.x.

Actualización de MySQL a MariaDB

El proceso de actualización es similar entre la mayoría de los tipos de servidores. Existen diferencias con los comandos específicos que se ejecutan, pero el procedimiento general sigue este Procedimiento general de actualización:

  1. Programe un tiempo de inactividad preciso.
  2. Garantice copias de seguridad adecuadas.
  3. Elimine los binarios/paquetes de MySQL existentes.
  4. Instalar el repositorio MariaDB correcto.
  5. Borrar las memorias caché del repositorio para borrar los datos del paquete antiguo.
  6. Instalar paquetes de MariaDB a través del administrador de paquetes del sistema.
  7. Inicie MariaDB iniciando el servicio MySQL.
  8. Ejecute el script de actualización de MySQL.
  9. Confirme que las bases de datos MySQL sean accesibles y que los datos sean correctos

Hemos incluido procedimientos específicos a continuación para varios sistemas Liquid Web. Antes de elegir el procedimiento de actualización correspondiente, revisemos los dos primeros pasos del Procedimiento general de actualización anterior. . Estos pasos son generalmente universales y son críticos para el éxito de cualquier plan de mantenimiento.

Programe tiempos de inactividad precisos

La programación de ventanas de mantenimiento adecuadas para realizar cambios que afectan los entornos de producción puede ser complicada. La ventana del evento de mantenimiento debe incluir tiempo suficiente para realizar todas las tareas necesarias en el plan de mantenimiento, además de cualquier solución de problemas y tiempo adicional para completar el Plan de reversión si es necesario.

Garantizar copias de seguridad adecuadas

Hay más en un plan de copia de seguridad de mantenimiento que simplemente hacer copias de seguridad de archivos y bases de datos. También es necesario formar un Plan de reversión, que describa el proceso para restaurar el entorno a su estado original antes del inicio del mantenimiento.
Los eventos de mantenimiento a veces pueden generar problemas imprevistos con la alternativa de volver a las copias de seguridad. Tener un plan de copia de seguridad válido y un plan de reversión válido para restaurar los servicios es un componente crítico para un mantenimiento exitoso. A continuación, se describen tanto un plan de copia de seguridad de muestra y un plan de reversión de muestra que se puede utilizar con el procedimiento de actualización descrito en este artículo.

Plan de copia de seguridad de muestra

+

Plan de reversión de muestra

+

MySQL a MariaDB en CentOS 6/7 con cPanel

Todas las imágenes del servidor Liquid Web cPanel incluyen MariaDB 5.5 ya instalado. Esto incluye imágenes de servidor CentOS 6 y CentOS 7. No es necesario actualizar a menos que se requiera la serie MariaDB 10.x. Para una actualización manual, procedimientos proporcionados por MariaDB aquí:Actualización de MariaDB 5.5 a MariaDB 10.0, de lo contrario, cPanel proporciona una interfaz fácil de apuntar y hacer clic que hace todo el trabajo pesado por usted. Siga uno de los procedimientos a continuación en forma de 'Solo texto' o forma gráfica.

Instrucciones de actualización de cPanel MariaDB:

Paso A) Confirme que las copias de seguridad estén presentes antes de continuar a la hora programada.

Paso B) Inicie sesión en WHM y cargue las actualizaciones de MySQL/MariaDB página:

① Use el cuadro de búsqueda rápida a la izquierda y escriba: actualización de mysql

② Ubique y haga clic en Actualizaciones de MySQL/MariaDB enlace.

③ Seleccionó la versión deseada de MariaDB.

④ Haz clic en el botón Siguiente.

Paso C) Espere las “Advertencias de actualización ” página para terminar de cargar.

① Lea y reconozca cada mensaje de advertencia activando cada casilla de verificación.

② Haz clic en el botón Continuar.

Paso D) Espere el “Tipo de actualización ” página para terminar de cargar.

① Seleccione Actualización desatendida para una experiencia de actualización perfecta.

② Haz clic en el botón Continuar.

Paso E)  Espere a que se complete el proceso de actualización.

MySQL a MariaDB en CentOS 7 con Plesk Onyx 17

Todas las imágenes del servidor Liquid Web CentOS 7 incluyen MariaDB 5.5 ya instalado, incluidos nuestros servidores CentOS 7 Plesk Onyx 17. No es necesario actualizar a menos que se requiera la serie MariaDB 10.x. En estos casos, siga los procedimientos estándar de actualización de MariaDB Plesk aquí:Cómo actualizar MySQL 5.5 a 5.6/5.7 o MariaDB 5.5 a 10.0/10.1/10.2 en Linux

MySQL 5.1-5.5 a MariaDB 5.5 en CentOS 6

Debido a la limitación de compatibilidad, MySQL 5.1, 5.2, 5.3 y 5.5.x deben actualizarse a MariaDB 5.5 y no pueden actualizarse a MariaDB 10.0 directamente. Este plan de actualización lo guiará para obtener cualquiera de estas versiones obsoletas de MySQL actualizadas a MariaDB 5.5. Una vez completada la actualización a MariaDB 5.5, siga las instrucciones Cómo actualizar MariaDB 5.5 a MariaDB 10.0 en CentOS 6 instrucciones para continuar con el proceso de actualización a MariaDB 10.

Paso 1: Confirme que las copias de seguridad estén presentes antes de continuar a la hora programada.

Paso 2: Detenga el servicio MySQL.

service mysqld stop

Salida de ejemplo:
~ $ service mysqld restart
Stopping mysqld: [ OK ]

Paso 3: Instale el repositorio de MariaDB 5.5 para CentOS 6

cat < /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
Este comando no tiene salida visible a menos que ocurran errores.

Paso 4: Limpiar el caché del repositorio de yum

yum clean all
Ejemplo de salida:

~ $ yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base extras mariadb updates
Cleaning up Everything
Cleaning up list of fastest mirrors

Paso 5:  Eliminar paquetes de MySQL

yum remove mysql-server mysql Salida de ejemplo:

Running Transaction Test
Transaction Test Succeeded
Running Transaction
Erasing : mysql-server-5.1.73-8.el6_8.x86_64 1/1
warning: /var/log/mysqld.log saved as /var/log/mysqld.log.rpmsave
Verifying : mysql-server-5.1.73-8.el6_8.x86_64 1/1
Removed:
mysql-server.x86_64 0:5.1.73-8.el6_8
Complete!
Truncado por brevedad.

Paso 6: Instale el servidor MariaDB y cliente MariaDB paquetes a través de yum.

yum install MariaDB-server MariaDB-client -y

Salida de ejemplo:Installed:
MariaDB-client.x86_64 0:10.1.35-1.el6 MariaDB-compat.x86_64 0:10.1.35-1.el6 MariaDB-server.x86_64 0:10.1.35-1.el6
Dependency Installed:
MariaDB-common.x86_64 0:10.1.35-1.el6 boost-program-options.x86_64 0:1.41.0-28.el6
galera.x86_64 0:25.3.23-1.rhel6.el6 jemalloc.x86_64 0:3.6.0-1.el6
Replaced:
mysql-libs.x86_64 0:5.1.73-8.el6_8
Complete!
Truncado por brevedad.

Paso 7: Reinicie el servicio MySQL

service mysql start Salida de ejemplo:

~ $ service mysql start
Starting MariaDB.180808 18:21:13 mysqld_safe Logging to '/var/lib/mysql/cent6.hostname.err'.
180808 18:21:13 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
SUCCESS!
Paso 8:Ejecute la herramienta de actualización de MySQL

mysql_upgrade Salida de ejemplo:

~ $ mysql_upgrade
MySQL upgrade detected
Phase 1/4: Fixing views from mysql
mysql
mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
Phase 4/4: Running 'mysql_fix_privilege_tables'
OK
Truncado por brevedad.

Paso 9: Confirme que el servidor MariaDB se está ejecutando como se esperaba

mysql -e 'SHOW VARIABLES LIKE "version"\G' Salida de ejemplo:

~ $ mysql -e 'SHOW VARIABLES LIKE "version"\G'
*************************** 1. row ***************************
Variable_name: version
Value: 5.5.61-MariaDB

Paso 10: La actualización está completa, verifique que sus bases de datos existan y funcionen.

[ Opcional ] siga las instrucciones Cómo actualizar MariaDB 5.5 a MariaDB 10.0 en CentOS 6.

De MariaDB 5.5 a MariaDB 10.0 en CentOS 6

Paso 1:  Confirme que las copias de seguridad estén presentes antes de continuar a la hora programada.

Paso 2: Elimina todos los paquetes de MariaDB.

yum remove MariaDB-* Salida de ejemplo:
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Erasing : MariaDB-server-5.5.61-1.el6.x86_64 1/2
Erasing : MariaDB-client-5.5.61-1.el6.x86_64 2/2
Verifying : MariaDB-server-5.5.61-1.el6.x86_64 1/2
Verifying : MariaDB-client-5.5.61-1.el6.x86_64 2/2
Removed:
MariaDB-client.x86_64 0:5.5.61-1.el6 MariaDB-server.x86_64 0:5.5.61-1.el6
Complete!
Truncado por brevedad.

Paso 3: Eliminar el repositorio de MariaDB existente.

rm -f /etc/yum.repos.d/MariaDB*.repo Este comando no tiene salida visible a menos que ocurran errores.

Paso 4: Cree el archivo de repositorio MariaDB 10.O Yum.

cat < /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
Este comando no tiene salida visible a menos que ocurran errores.

Paso 5: Limpie el caché de Yum.

yum clean all

Salida de ejemplo:

~ $ yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base extras mariadb updates
Cleaning up Everything
Cleaning up list of fastest mirrors

Paso 6: Instalar servidor MariaDB y cliente MariaDB paquete a través de Yum.

yum install MariaDB-server MariaDB-client Salida de ejemplo:

Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : MariaDB-client-10.0.36-1.el6.x86_64 1/2
Installing : MariaDB-server-10.0.36-1.el6.x86_64 2/2
Verifying : MariaDB-server-10.0.36-1.el6.x86_64 1/2
Verifying : MariaDB-client-10.0.36-1.el6.x86_64 2/2
Installed:
MariaDB-client.x86_64 0:10.0.36-1.el6 MariaDB-server.x86_64 0:10.0.36-1.el6
Complete!
Truncado por brevedad.

Paso 7: Inicie el servicio MySQL.

service mysql start

Paso 8: Ejecute el script de actualización de MySQL.

mysql_upgrade

Paso 9: La actualización está completa, verifique que sus bases de datos existan y funcionen.

MySQL 5.1-5.5 a MariaDB 5.5 en Ubuntu 14.04

Paso 1:  Confirme que las copias de seguridad estén presentes antes de continuar a la hora programada.

Paso 2: Instale el repositorio de MariaDB 5.5 con este resumen, instalará las herramientas requeridas necesarias (si faltan), la clave GPG de Ubuntu 14.04 y el repositorio de MariaDB 5.5 mientras actualiza los cachés de paquetes apt.

sudo apt-get install software-properties-common -y
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu trusty main'
sudo apt-get update

Salida de ejemplo:
~ $ sudo apt-get install software-properties-common -y > /dev/null
~ $ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.PtpHIXMNvY --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
gpg: requesting key 1BB943DB from hkp server keyserver.ubuntu.com
gpg: key 1BB943DB: public key "MariaDB Package Signing Key <[email protected]>" imported
gpg: Total number processed: 1
gpg: imported: 1
~ $ sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu trusty main'
~ $ sudo apt-get update > /dev/null
Truncado por brevedad.

Paso 3: Detenga el servicio mysql.

sudo service mysql stop
Ejemplo de salida:
~ $ sudo service mysql stop
mysql stop/waiting

Paso 4: Cambie el nombre del archivo de configuración de MySQL /etc/mysql/my.cnf a /etc/mysql/my.cnf.bak. Este paso es necesario para garantizar que todas las directivas/variables incompatibles se hayan eliminado de la configuración para evitar problemas con la instalación.

sudo mv /etc/mysql/my.cnf{,.bak}

Paso 5: Instale el servidor mariadb paquete. Esto eliminará simultáneamente los archivos binarios de MySQL existentes y luego instalará los nuevos archivos binarios de MariaDB.
sudo apt-get install mariadb-server -y

Ejemplo de salida:

+

Paso 6: Durante la instalación, aparecerá un cuadro de diálogo en pantalla que le pedirá que cambie la contraseña raíz de MySQL dos veces. Siga las instrucciones para cambiar la contraseña u omita el cambio proporcionando una contraseña en blanco.


Paso 7: Cuando se complete con éxito, el servicio mysql debería iniciarse automáticamente y el script mysql_upgrade se completará automáticamente durante el proceso de instalación.

A) Verifique que el servicio mysql se esté ejecutando. sudo service mysql status
Ejemplo de salida:
~ $ sudo service mysql status
mysql start/running, process 4745

B) Compruebe que mysql_upgrade se haya realizado correctamente. sudo mysql_upgrade

Salida de ejemplo:
~ $ sudo mysql_upgrade
This installation of MySQL is already upgraded to 5.5.61-MariaDB, use --force if you still need to run mysql_upgrade

Paso 8: La actualización está completa, verifique que sus bases de datos existan y funcionen.

MySQL 5.7 a MariaDB 10.2 en Ubuntu 16.04

Paso 1:  Confirme que las copias de seguridad estén presentes antes de continuar a la hora programada.

Paso 2: Verifique que la cuenta raíz local tenga una contraseña adecuada. Antes de actualizar a MariaDB 10.2, verifique el 'root' @ 'localhost' usuario para asegurarse de que se asigne una contraseña; de lo contrario, el auth_socket el complemento utiliza una contraseña vacía. Esta es una práctica común en configuraciones más antiguas y causa problemas con el proceso de actualización debido al modo predeterminado de MariaDB 10.2 en Strict SQL.

El siguiente script imprimirá los detalles del usuario raíz local.

mysql -e 'select User,Host,Plugin,authentication_string from user where authentication_string = "" and plugin = "auth_socket";' mysql
Ejemplo de salida:
~ $ mysql -e 'select User,Host,Plugin,authentication_string from user where authentication_string = "" and plugin = "auth_socket";' mysql
+------+-----------+-------------+-----------------------+
| User | Host | Plugin | authentication_string |
+------+-----------+-------------+-----------------------+
| root | localhost | auth_socket | |
+------+-----------+-------------+-----------------------+

A continuación se muestran dos ejemplos de cómo actualizar estas entradas.

Método Automágico :El siguiente renglón lee la contraseña de /root/.my.cnf y usa esa contraseña para actualizar la entrada de usuario de MySQL, si existe el archivo.

sudo test -e /root/.my.cnf && sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$(awk -F"[=']" 'tolower($1)~/password/{print $(NF-1)}' /root/.my.cnf)'; select User,Host,Plugin,authentication_string from user where user = 'root' and host = 'localhost';" mysql || echo “ERROR: /root/.my.cnf does not exist, are you root?”
Ejemplo de salida:
~ $ sudo test -e /root/.my.cnf && sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$(awk -F"[=']" 'tolower($1)~/password/{print $(NF-1)}' /root/.my.cnf)'; select User,Host,Plugin,authentication_string from user where user = 'root' and host = 'localhost';" mysql || echo “ERROR: /root/.my.cnf does not exist, are you root?”
+------+-----------+-----------------------+-------------------------------------------+
| User | Host | Plugin | authentication_string |
+------+-----------+-----------------------+-------------------------------------------+
| root | localhost | mysql_native_password | *40C5E49F0CC7BDC637FEEDFBF14FF100C37619D7 |
+------+-----------+-----------------------+-------------------------------------------+

Método manual: La siguiente sintaxis es necesaria para agregar una contraseña adecuada a la cuenta de usuario raíz. No olvide actualizar el archivo /root/.my.cnf con la contraseña correcta o su actualización puede encontrar errores. Asegúrese de sustituir la contraseña correcta por SuperSecretPass.

ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘SuperSecretPass’;

Paso 3: Instale el repositorio de MariaDB 10.2. Esta es una estrofa de varios comandos que instalará las herramientas necesarias, la clave GPG, el repositorio y actualizará las cachés de paquetes.

sudo apt-get install software-properties-common -y > /dev/null
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,arm64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/10.2/ubuntu xenial main'
sudo apt-get update > /dev/null

Salida de ejemplo:
~ $ sudo apt-get install software-properties-common -y
~ $ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Executing: /tmp/tmp.J8PdET9w5B/gpg.1.sh --recv-keys
--keyserver
hkp://keyserver.ubuntu.com:80
0xF1656F24C74CD1D8
gpg: requesting key C74CD1D8 from hkp server keyserver.ubuntu.com
gpg: key C74CD1D8: public key "MariaDB Signing Key <[email protected]>" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
~ $ sudo add-apt-repository 'deb [arch=amd64,arm64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/10.2/ubuntu xenial main'
~ $ sudo apt-get update > /dev/null
Truncado por brevedad.

Paso 4: Detenga el servicio mysql.

sudo service mysql stop
Ejemplo de salida:
~ $ sudo service mysql stop
mysql stop/waiting

Paso 5: Cambie el nombre del archivo de configuración de MySQL /etc/mysql/my.cnf a /etc/mysql/my.cnf.bak. Este paso es necesario para garantizar que todas las directivas/variables incompatibles se hayan eliminado de la configuración para evitar problemas con la instalación.
sudo mv /etc/mysql/my.cnf{,.bak}
Paso 6: Instale el paquete del servidor mariadb. Esto eliminará simultáneamente los archivos binarios de MySQL existentes y luego instalará los nuevos archivos binarios de MariaDB.

sudo apt-get install mariadb-server -y Salida de ejemplo:
~ $ sudo apt install mariadb-server -y</code?

Paso 7: Durante la instalación, aparecerá un cuadro de diálogo en pantalla que le indicará que no se pudo cambiar la contraseña raíz porque ya existe una. Presiona enter para continuar.

Paso 8: Cuando se complete con éxito, el servicio mysql debería iniciarse automáticamente.
sudo service mysql status Salida de ejemplo:
~ $ sudo service mysql status
mysql start/running, process 4745

Paso 9: Finalmente, ejecute mysql_upgrade para completar la actualización.
sudo mysql_upgrade El resultado ilustra errores normales al actualizar.

Ejemplo de salida:

+

Paso 10: La actualización está completa, verifique que sus bases de datos existan y funcionen.

Navegación en serie<>