Mysql
 sql >> Base de données >  >> RDS >> Mysql

Performances MySQL :convertir MySQL en MariaDB

Comme nous l'avons vu dans notre article précédent de notre série sur les performances MySQL :MySQL contre MariaDB, il y a très peu d'inconvénients à utiliser MariaDB par rapport à MySQL standard. Nos MariaDB à haute disponibilité se sont avérées être un digne successeur avec des inconvénients facilement atténués. Dans le dernier article de notre série, nous nous concentrerons sur la mise à niveau vers différentes versions de MySQL et MariaDB sur les serveurs suivants :

CentOS 6/7

  • MySQL vers MariaDB sur CentOS 6/7 avec cPanel
  • MySQL vers MariaDB sur CentOS 7 avec Plesk Onyx 17
  • MySQL 5.1-5.5 vers MariaDB 5.5 sur CentOS 6
  • MariaDB 5.5 à MariaDB 10.0 sur CentOS 6

Ubuntu 14.04/16.04

  • MySQL 5.1-5.5 vers MariaDB 5.5 sur Ubuntu 14.04
  • MySQL 5.7 vers MariaDB 10.2 sur Ubuntu 16.04

Choisir un plan de mise à niveau MariaDB

La sélection du bon plan de mise à niveau nécessite de déterminer quelle version de MySQL s'exécute sur le système prévu. Une méthode universelle pour déterminer quelle version de MySQL le serveur exécute actuellement consiste à interroger le serveur lui-même pour signaler la version. Cela fonctionne de la même manière malgré la distribution Linux exécutée sur le serveur :

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

Exemple de sortie :

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

Une fois que vous avez identifié votre version de MySQL, utilisez la clé ci-dessous pour localiser la procédure de mise à niveau correcte pour votre serveur particulier. Certaines versions de MySQL nécessitent une mise à niveau vers MariaDB 5.5 avant la mise à niveau vers les versions MariaDB 10.x.

Passer de MySQL à MariaDB

Le processus de mise à niveau est similaire entre la plupart des types de serveurs. Il existe des différences avec les commandes spécifiques qui sont exécutées, mais la procédure globale suit cette procédure de mise à niveau générale :

  1. Planifiez des temps d'arrêt précis.
  2. Assurez-vous que les sauvegardes sont adéquates.
  3. Supprimez les binaires/packages MySQL existants.
  4. Installez le bon référentiel MariaDB.
  5. Effacez les caches du référentiel pour effacer les anciennes données de package.
  6. Installez les packages MariaDB via le gestionnaire de packages du système.
  7. Démarrez MariaDB en démarrant le service MySQL.
  8. Exécutez le script de mise à niveau MySQL.
  9. Confirmez que les bases de données MySQL sont accessibles et que les données sont correctes

Nous avons inclus ci-dessous des procédures spécifiques pour divers systèmes Liquid Web. Avant de choisir votre procédure de mise à niveau applicable, examinons les deux premières étapes de la procédure générale de mise à niveau ci-dessus. . Ces étapes sont généralement universelles et sont essentielles au succès de tout plan de maintenance.

Planifiez des temps d'arrêt précis

Planifier des fenêtres de maintenance appropriées pour effectuer des changements affectant les environnements de production peut être délicat. La fenêtre d'événement de maintenance doit inclure suffisamment de temps pour effectuer toutes les tâches nécessaires dans le plan de maintenance, ainsi que tout dépannage et du temps supplémentaire pour terminer le plan de réversion si nécessaire.

Assurez-vous que les sauvegardes sont adéquates

Un plan de sauvegarde de maintenance ne se limite pas à la simple sauvegarde de fichiers et de bases de données. Il est également nécessaire de former un plan de réversion, qui décrit le processus de restauration de l'environnement à son état d'origine avant le début de la maintenance.
Les événements de maintenance peuvent parfois entraîner des problèmes imprévus avec l'alternative de revenir aux sauvegardes. Avoir à la fois un plan de sauvegarde valide et un plan de réversion valide pour restaurer les services est un élément essentiel d'une maintenance réussie. Vous trouverez ci-dessous les grandes lignes d'un exemple de plan de sauvegarde et un exemple de plan de réversion qui peut être utilisé avec la procédure de mise à niveau de cet article décrite.

Exemple de plan de sauvegarde

+

Exemple de plan de réversion

+

MySQL vers MariaDB sur CentOS 6/7 avec cPanel

Toutes les images de serveur Liquid Web cPanel incluent MariaDB 5.5 déjà installé. Cela inclut les images de serveur CentOS 6 et CentOS 7. Il n'est pas nécessaire de mettre à niveau sauf si la série MariaDB 10.x est requise. Pour une mise à niveau manuelle, procédures fournies par MariaDB ici :Mise à niveau de MariaDB 5.5 vers MariaDB 10.0, sinon, cPanel fournit une interface pointer-cliquer simple qui fait tout le gros du travail pour vous. Suivez l'une des procédures ci-dessous sous la forme "Texte uniquement" ou sous forme graphique.

Instructions de mise à jour cPanel MariaDB :

Étape A) Confirmez que les sauvegardes sont présentes avant de poursuivre à l'heure prévue.

Étape B) Connectez-vous à WHM et chargez les mises à jour MySQL/MariaDB page :

① Utilisez le champ de recherche rapide sur la gauche et saisissez : mise à niveau mysql

② Localisez et cliquez sur Mises à jour MySQL/MariaDB lien.

③ Sélectionnez la version souhaitée de MariaDB.

④ Cliquez sur le bouton Suivant.

Étape C) Attendez les "avertissements de mise à jour ” page pour terminer le chargement.

① Lire et accepter chaque message d'avertissement en activant chaque case à cocher.

② Cliquez sur le bouton Continuer .

Étape D) Attendez le "Type de mise à jour ” page pour terminer le chargement.

① Sélectionnez Mise à niveau sans surveillance pour une expérience de mise à niveau transparente.

② Cliquez sur le bouton Continuer .

Étape E)  Attendez que le processus de mise à niveau soit terminé.

MySQL vers MariaDB sur CentOS 7 avec Plesk Onyx 17

Toutes les images de serveur Liquid Web CentOS 7 incluent MariaDB 5.5 déjà installé, y compris nos serveurs CentOS 7 Plesk Onyx 17. Il n'est pas nécessaire de mettre à niveau sauf si la série MariaDB 10.x est requise. Dans ces cas, suivez les procédures standard de mise à niveau de MariaDB Plesk ici :Comment mettre à niveau MySQL 5.5 vers 5.6/5.7 ou MariaDB 5.5 vers 10.0/10.1/10.2 sous Linux

MySQL 5.1-5.5 vers MariaDB 5.5 sur CentOS 6

En raison de limitations de compatibilité, MySQL 5.1, 5.2, 5.3 et 5.5.x doivent être mis à niveau vers MariaDB 5.5 et ne peuvent pas être mis à niveau directement vers MariaDB 10.0. Ce plan de mise à niveau vous guidera dans la mise à niveau de l'une de ces versions obsolètes de MySQL vers MariaDB 5.5. Une fois la mise à niveau vers MariaDB 5.5 terminée, suivez Comment mettre à niveau MariaDB 5.5 vers MariaDB 10.0 sur CentOS 6 instructions pour poursuivre le processus de mise à niveau vers MariaDB 10.

Étape 1 : Confirmez que les sauvegardes sont présentes avant de poursuivre à l'heure prévue.

Étape 2 : Arrêtez le service MySQL.

service mysqld stop

Exemple de sortie :
~ $ service mysqld restart
Stopping mysqld: [ OK ]

Étape 3 : Installez le référentiel MariaDB 5.5 pour 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
Cette commande n'a pas de sortie visible sauf si des erreurs se produisent.

Étape 4 : Nettoyer le cache du dépôt yum

yum clean all
Exemple de sortie :

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

Étape 5 :  Supprimer les packages MySQL

yum remove mysql-server mysql Exemple de sortie :

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!
Tronqué par souci de concision.

Étape 6 : Installez le serveur MariaDB etMariaDB-client paquets via yum.

yum install MariaDB-server MariaDB-client -y

Exemple de sortie :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!
Tronqué par souci de concision.

Étape 7 : Redémarrez le service MySQL

service mysql start Exemple de sortie :

~ $ 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!
Étape 8 : Exécuter l'outil de mise à jour MySQL

mysql_upgrade Exemple de sortie :

~ $ 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
Tronqué par souci de concision.

Étape 9 : Confirmer que le serveur MariaDB fonctionne comme prévu

mysql -e 'SHOW VARIABLES LIKE "version"\G' Exemple de sortie :

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

Étape 10 : La mise à niveau est terminée, vérifiez que vos bases de données existent et fonctionnent.

[ Facultatif ] suivez les instructions Comment mettre à niveau MariaDB 5.5 vers MariaDB 10.0 sur CentOS 6.

MariaDB 5.5 vers MariaDB 10.0 sur CentOS 6

Étape 1 :  Confirmez que les sauvegardes sont présentes avant de poursuivre à l'heure prévue.

Étape 2 : Supprimez tous les packages MariaDB.

yum remove MariaDB-* Exemple de sortie :
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!
Tronqué par souci de concision.

Étape 3 : Supprimez le référentiel MariaDB existant.

rm -f /etc/yum.repos.d/MariaDB*.repo Cette commande n'a pas de sortie visible sauf si des erreurs se produisent.

Étape 4 : Créez le fichier de référentiel 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
Cette commande n'a pas de sortie visible sauf si des erreurs se produisent.

Étape 5 : Nettoyez le cache Yum.

yum clean all

Exemple de sortie :

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

Étape 6 : Installez le serveur MariaDB et client MariaDB colis via Yum.

yum install MariaDB-server MariaDB-client Exemple de sortie :

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!
Tronqué par souci de concision.

Étape 7 : Démarrez le service MySQL.

service mysql start

Étape 8 : Exécutez le script de mise à niveau MySQL.

mysql_upgrade

Étape 9 : La mise à jour est terminée, vérifiez que vos bases de données existent et fonctionnent.

MySQL 5.1-5.5 vers MariaDB 5.5 sur Ubuntu 14.04

Étape 1 :  Confirmez que les sauvegardes sont présentes avant de poursuivre à l'heure prévue.

Étape 2 : Installez le référentiel MariaDB 5.5 avec ce one-liner, il installera les outils requis nécessaires (s'ils sont manquants), la clé Ubuntu 14.04 GPG et le référentiel MariaDB 5.5 tout en mettant à jour les caches de packages 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

Exemple de sortie :
~ $ 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
Tronqué par souci de concision.

Étape 3 : Arrêtez le service mysql.

sudo service mysql stop
Exemple de sortie :
~ $ sudo service mysql stop
mysql stop/waiting

Étape 4 : Renommez le fichier de configuration MySQL /etc/mysql/my.cnf en /etc/mysql/my.cnf.bak. Cette étape est nécessaire pour s'assurer que toutes les directives/variables incompatibles ont été supprimées de la configuration afin d'éviter tout problème d'installation.

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

Étape 5 : Installez le mariadb-server emballer. Cela supprimera simultanément les binaires MySQL existants, puis installera les nouveaux binaires MariaDB.
sudo apt-get install mariadb-server -y

Exemple de résultat :

+

Étape 6 : Au cours de l'installation, une boîte de dialogue à l'écran apparaîtra vous invitant à changer deux fois le mot de passe root MySQL. Suivez les instructions pour changer le mot de passe ou ignorez le changement en fournissant un mot de passe vide.


Étape 7 : Une fois terminé avec succès, le service mysql devrait démarrer automatiquement et le script mysql_upgrade est terminé automatiquement pendant le processus d'installation.

A) Vérifiez que le service mysql est en cours d'exécution.sudo service mysql status
Exemple de sortie :
~ $ sudo service mysql status
mysql start/running, process 4745

B) Vérifiez que mysql_upgrade a réussi.sudo mysql_upgrade

Exemple de sortie :
~ $ 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

Étape 8 : La mise à jour est terminée, vérifiez que vos bases de données existent et fonctionnent.

MySQL 5.7 vers MariaDB 10.2 sur Ubuntu 16.04

Étape 1 :  Confirmez que les sauvegardes sont présentes avant de poursuivre à l'heure prévue.

Étape 2 : Vérifiez que le compte racine local a un mot de passe approprié. Avant de mettre à niveau vers MariaDB 10.2, vérifiez le 'root' @ 'localhost' utilisateur pour s'assurer qu'un mot de passe est attribué sinon, le auth_socket plugin utilise un mot de passe vide. Ceci est une pratique courante dans les anciennes configurations et entraîne des problèmes avec le processus de mise à niveau en raison du mode par défaut de MariaDB 10.2 dans Strict SQL.

Le script suivant imprimera les détails de l'utilisateur root local.

mysql -e 'select User,Host,Plugin,authentication_string from user where authentication_string = "" and plugin = "auth_socket";' mysql
Exemple de sortie :
~ $ 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 | |
+------+-----------+-------------+-----------------------+

Vous trouverez ci-dessous deux exemples de mise à jour de ces entrées.

Méthode automagique  :La ligne suivante lit le mot de passe à partir de /root/.my.cnf et utilise ce mot de passe pour mettre à jour l'entrée d'utilisateur MySQL, si le fichier existe.

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?”
Exemple de sortie :
~ $ 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éthode manuelle : La syntaxe suivante est nécessaire pour ajouter un mot de passe approprié au compte d'utilisateur racine. N'oubliez pas de mettre à jour le fichier /root/.my.cnf avec le mot de passe correct ou votre mise à jour risque de rencontrer des erreurs. Assurez-vous de remplacer le mot de passe correct par SuperSecretPass.

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

Étape 3 : Installez le référentiel MariaDB 10.2. Il s'agit d'une strophe multi-commande qui installera les outils requis nécessaires, la clé GPG, le référentiel et mettra à jour les caches de packages.

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

Exemple de sortie :
~ $ 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
Tronqué par souci de concision.

Étape 4 : Arrêtez le service mysql.

sudo service mysql stop
Exemple de sortie :
~ $ sudo service mysql stop
mysql stop/waiting

Étape 5 : Renommez le fichier de configuration MySQL /etc/mysql/my.cnf en /etc/mysql/my.cnf.bak. Cette étape est nécessaire pour s'assurer que toutes les directives/variables incompatibles ont été supprimées de la configuration afin d'éviter les problèmes d'installation.
sudo mv /etc/mysql/my.cnf{,.bak}
Étape 6 : Installez le paquet mariadb-server. Cela supprimera simultanément les fichiers binaires MySQL existants, puis installera les nouveaux fichiers binaires MariaDB.

sudo apt-get install mariadb-server -y Exemple de résultat :
~ $ sudo apt install mariadb-server -y</code?

Étape 7 : Au cours de l'installation, une boîte de dialogue à l'écran apparaîtra indiquant que le mot de passe root n'a pas pu être modifié car il en existe déjà un. Appuyez sur Entrée pour continuer.

Étape 8 : Une fois terminé avec succès, le service mysql devrait démarrer automatiquement.
sudo service mysql status Exemple de sortie :
~ $ sudo service mysql status
mysql start/running, process 4745

Étape 9 : Enfin, exécutez mysql_upgrade pour terminer la mise à niveau.
sudo mysql_upgrade La sortie illustre les erreurs normales lors de la mise à niveau.

Exemple de résultat :

+

Étape 10 : La mise à jour est terminée, vérifiez que vos bases de données existent et fonctionnent.

Navigation dans les séries<
>