Maison  >  Article  >  base de données  >  Partager des exemples de la meilleure façon de mettre à niveau MySQL

Partager des exemples de la meilleure façon de mettre à niveau MySQL

小云云
小云云original
2018-01-05 17:39:571644parcourir

MySQL5.7 ajoute de nombreuses nouvelles fonctionnalités, telles que : DDL en ligne, réplication multi-source, semi-synchronisation améliorée, transfert d'espace table, bibliothèque système, réplication de groupe, etc. Récemment, j'ai enfin eu l'opportunité de mettre à niveau MySQL vers la version 5.7 et j'étais très excité. Cet article partage principalement avec vous la meilleure méthode pour mettre à niveau MySQL de la théorie à la pratique. Les amis dans le besoin peuvent suivre, apprendre et fonctionner.

Présentation de la mise à niveau de MySQL

L'essence de la mise à niveau MySQL :

Mises à niveau du dictionnaire de données

Le dictionnaire de données comprend : mysql, information_schema, performance_schema, sys schema.

Deux façons de mettre à niveau MySQL :

mise à niveau sur place :

Convient aux mises à niveau de versions mineures.

Autrement dit, arrêtez MySQL actuel, remplacez le binaire ou le package actuel, redémarrez MySQL sur le répertoire de données existant et exécutez mysql_upgrade. Caractéristiques : Aucune modification des fichiers de données, vitesse de mise à niveau rapide ; cependant, il ne peut pas traverser les systèmes d'exploitation ou les versions majeures (5.5—>5.7). mise à niveau logique :

Convient aux mises à niveau MySQL sur différents systèmes d'exploitation et aux mises à niveau entre les versions majeures.


C'est-à-dire : utilisez mysqldump ou mydumper pour importer et exporter des données afin de mettre à niveau la version.

Caractéristiques : Peut traverser les systèmes d'exploitation et les versions majeures ; cependant, la vitesse de mise à niveau est lente et sujette à des problèmes tels que des codes tronqués.

Préparation avant la mise à niveau :

Faites des sauvegardes à l'avance.

Obtenez des informations sur les modifications apportées à la nouvelle version (quelles ne sont plus compatibles, quelles fonctionnalités ne sont plus prises en charge)

Informations générales sur le site officiel—>quoi de neuf dans MySQL 5.7

Notes sur la mise à niveau :

Vérifiez s'il y a des changements majeurs dans la nouvelle version

Notez les changements en mode SQL

Par exemple : le mode SQL a changé dans MySQL 5.7. Pour les modes SQL qui ne sont plus pris en charge, certains SQL ne s'exécuteront pas. À ce stade, vous pouvez effacer le mode SQL et définir le mode SQL après l'exécution.

Une fois la mise à niveau réussie, confirmez si le SQL métier peut s'exécuter via

Toutes les couches du programme sont-elles normales

Parfois, certaines parties du langage de programmation d'origine ne sont pas prises en charge par la nouvelle version de la base de données. Par exemple, j'utilisais autrefois PHP 4.0 dans la version 5.1, mais après la mise à niveau vers la version 5.6, certaines fonctions de PHP n'étaient pas prises en charge.

Une fois la mise à niveau terminée, assurez-vous d'utiliser le même programme que la version en ligne pendant les tests pour voir s'il y a des problèmes.

Modifications du moteur de stockage

Par exemple : dans la future version 5.8, le moteur myisam ne sera plus supporté.

Faites attention au problème des caractères tronqués

L'étape suivante consiste à utiliser la méthode de mise à niveau sur place pour mettre à niveau MySQL5.6 vers MySQL5.7.

Mise à niveau sur place de MySQL

Environnement :

5.6.15 —>5.7.20

Préparation avant la mise à niveau :

Sauvegardez + faites attention aux changements dans la nouvelle version

Opération de mise à niveau :

1. Téléchargez et décompressez le progiciel 5.7


2. Fermez le MySQL (5.6) actuel

# tar -xzvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
# ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql5.7
3. Remplacer les fichiers binaires (5.7 remplace 5.6)

# mysql -u root -p -S /data/mysql3308/mysql3308.sock --execute="SET GLOBAL innodb_fast_shutdown=0"
# mysqladmin -u root -p -S /data/mysql3308/mysql3308.sock shutdown
4. Démarrez MySQL en utilisant le répertoire de données existant

# cd /usr/local
# mv mysql  mysql5.6
# mv mysql5.7 mysql
5. Vérifiez si toutes les tables sont compatibles avec la version actuelle et mettez à jour la bibliothèque système

# mysqld_safe --user=mysql --socket=/data/mysql3308/mysql3308.sock -p --skip-grant-tables --datadir=/data/mysql3308/data
6. Redémarrez pour vous assurer que les modifications apportées aux tables système prennent effet

# mysql_upgrade -uroot -p -S /data/mysql3308/mysql3308.sock
注:mysql_upgrade的作用是检查所有库的所有表是否与当前的新版本兼容,并更新系统库。
À ce stade, la mise à niveau est terminée.

Question : Que dois-je faire si la mise à niveau échoue lors de la mise à niveau de MySQL ?
# mysqld --defaults-file=/data/mysql3308/my3308.cnf &
# mysql -uroot -p -S /data/mysql3308/mysql3308.sock

Lors de la mise à niveau, une bibliothèque esclave est généralement créée pour la mise à niveau. Si la mise à niveau échoue, cela n'affectera pas la bibliothèque principale si la mise à niveau réussit et que le test réussit, les autres bibliothèques esclaves seront progressivement mises à niveau vers la nouvelle version. enfin, la bibliothèque principale sera mise à niveau lorsque la base de données est hors ligne, une base de données esclave est promue comme nouvelle base de données maître et l'ancienne base de données maître est mise à niveau.

Recommandations associées :

Solution au problème selon lequel MySQL ne peut pas être démarré après la mise à niveau

Explication détaillée de Mysql encapsulé en PHP classe d'opération

Comment PHP résout le problème des données chinoises tronquées stockées dans MySQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn