Maison  >  Article  >  base de données  >  Quelle est la différence entre 5.6 et 5.7 dans MySQL

Quelle est la différence entre 5.6 et 5.7 dans MySQL

WBOY
WBOYoriginal
2022-03-01 16:45:2614535parcourir

La différence entre 5.6 et 5.7 dans MySQL : 1. La version 5.7 fournit des données au format json, mais la version 5.6 ne fournit pas de données de version json ; 2. La version 5.7 prend en charge plusieurs maîtres et un esclave, mais la version 5.6 ne prend pas en charge plusieurs maîtres et un esclave ; 3 , La version 5.7 initialise les données dans le répertoire bin, tandis que la version 5.6 est dans le répertoire script.

Quelle est la différence entre 5.6 et 5.7 dans MySQL

L'environnement d'exploitation de ce tutoriel : système windows10, version mysql8.0.22, ordinateur Dell G3.

Quelle est la différence entre 5.6 et 5.7 dans MySQL ?

1. Différences de compilation et d'installation

Mysql5.7 a de nombreux changements après la mise à jour, comme json, etc., et même l'installation a changé. la bibliothèque est requise pour l’installation. Le code source du site Web officiel de MySQL comprend le code source avec la bibliothèque boost et le code source sans bibliothèque boost. Ceux qui n'ont pas le code source de la bibliothèque boost doivent installer boost séparément.

mysql5.7 prend en charge plusieurs maîtres et un esclave, différentes manières d'atteindre une haute disponibilité

Téléchargez le logiciel

wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20.tar.gz

Installation du code source MySQL avec boost

1 Installez les packages de dépendances

yum -y install make gcc-c++ cmake bison-devel  ncurses-devel   bison perl perl-devel  perl perl-devel

2. sans booster l'installation du code source MySQL

1. Installer les packages de dépendances

cd /usr/local/mysql-5.7.20/
cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost
make
make install

2 Compiler et installer

yum -y install gcc gcc-c++ ncurses ncurses-devel cmake

2 La différence lors de la reconnaissance initiale

cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.20 \
-DMYSQL_DATADIR=/application/mysql-5.7.20/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.7.20/tmp/mysql.sock \
#开启BOOST库
-DDOWNLOAD_BOOST=1 \
#指定boost库位置
-DWITH_BOOST=/usr/local/boost_1_59_0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0 
make
make install

–l'initialisation génère un mot de passe aléatoire et l'écrit dans un fichier

–initialiser. -insecure ne génère pas de mot de passe aléatoire

3. La différence entre les fonctions et les fonctionnalités

Sécurité

Le champ plugin de la table utilisateur mysql.user ne peut pas être vide. La valeur par défaut est mysql_native_password au lieu de mysql_old_password. L'ancien format de mot de passe n'est plus pris en charge ;

Ajout d'un mécanisme d'expiration du mot de passe, vous devez changer le mot de passe après l'expiration, sinon vous risquez d'être désactivé, ou d'entrer en mode bac à sable ;

Ajout d'un mécanisme d'expiration du mot de passe, vous devez changer le mot de passe après ; expiration, sinon vous risquez d'être désactivé, ou de passer en mode sandbox

Fourni La configuration de l'accès sécurisé SSL est plus simple, et la connexion par défaut utilise le cryptage SSL ;

Flexibilité

La base de données MySQL prend également en charge JSON à partir de la version 5.7.8.

Peut stocker de manière mixte des données structurées et des données non structurées, et présente à la fois les avantages d'une base de données relationnelle et d'une base de données non relationnelle

Peut fournir une prise en charge complète des transactions

la colonne générée est une nouvelle fonctionnalité introduite par MySQL 5.7, appelée colonne générée, cette colonne de la base de données est calculée à partir d'autres colonnes

Facilité d'utilisation

Avant MySQL 5.7, si l'utilisateur saisissait une mauvaise instruction SQL et appuyait sur ctrl+c, bien que cela puisse "mettre fin" à l'exécution du Instruction SQL, cependant, la session en cours sera également fermée. MySQL 5.7 améliore cette fonctionnalité contre-intuitive et ne quitte plus la session.

MySQL 5.7 peut expliquer un SQL en cours d'exécution, ce qui sera très utile aux administrateurs de base de données pour analyser les instructions qui prennent beaucoup de temps à s'exécuter. Le schéma

sys est une bibliothèque système introduite dans MySQL 5.7.7. Il contient une série de vues, de fonctions et de procédures stockées. Ce projet se concentre sur la facilité d'utilisation de MySQL.

Disponibilité

Paramétrage en ligne des règles de filtrage répliquées. Il n'est plus nécessaire de redémarrer MySQL, il suffit d'arrêter le SQLthread. Une fois la modification terminée, démarrez le SQLthread.

Modifiez la taille du pool tampon en ligne.

Online DDL MySQL 5.7 prend en charge le renommage des index et la modification de la taille de varchar Dans les versions précédentes, ces deux opérations nécessitaient la reconstruction de l'index ou de la table.

Activez GTID en ligne. Dans la version précédente, étant donné que l'activation de GTID en ligne n'était pas prise en charge, si l'utilisateur souhaite mettre à niveau la version inférieure de la base de données vers une version de base de données prenant en charge GTID, il doit d'abord fermer la base de données, puis fermer la base de données. démarrez-le en mode GTID, ce qui provoque une mise à niveau extrêmement gênante.

Performance

Améliorations des performances des tables temporaires.

Les tables temporaires ne sont visibles que dans la session en cours

Le cycle de vie des tables temporaires est la connexion actuelle (MySQL est en panne ou redémarré, la connexion actuelle se termine)

Améliorations des performances des transactions en lecture seule.

MySQL 5.7 optimise la surcharge des transactions en lecture seule et améliore les performances globales de la base de données en évitant d'attribuer des ID de transaction pour les transactions en lecture seule, en n'attribuant pas de segments d'annulation pour les transactions en lecture seule, en réduisant la concurrence de verrouillage, etc.

-Accélérer le traitement de la connexion

Avant MySQL 5.7, les opérations d'initialisation des variables (THD, VIO) étaient effectuées dans le thread de réception de connexion. Désormais, ces tâches sont envoyées au thread de travail pour réduire la charge de travail du thread de réception de connexion et améliorer le processus. vitesse de traitement de la connexion. Cette optimisation sera très utile pour les applications qui établissent fréquemment des connexions courtes.

Améliorations des performances de réplication (prise en charge des esclaves multithread, appelés MTS)

La configuration par défaut de MySQL est la réplication parallèle au niveau de la bibliothèque Afin d'utiliser pleinement la fonction de réplication parallèle de MySQL 5.7, nous devons asservir. type parallèle est configuré comme LOGICAL_CLOCK.

Prise en charge de la réplication multi-source

Changements de rigueur

Le mode STRICT_TRANS_TABLES est activé par défaut

La prise en charge de fonctionnalités plus complexes est implémentée pour le mode ONLY_FULL_GROUP_BY et est également activée par défaut

. L'autre mode SQL activé par défaut est NO_ENGINE_SUBSTITUTION

Changement des paramètres par défaut

Le format binlog par défaut est ajusté au format ROW

.

L'opération par défaut après une erreur binlog est ajustée à ABORT_SERVER

Sous l'option précédente (binlog_error_action=IGNORE_ERROR), si une erreur se produit et que le binlog ne peut pas être écrit, mysql-server enregistrera l'erreur dans le journal des erreurs et forcera la fonction binlog être éteint. Cela entraînera le serveur mysql à continuer de fonctionner en mode de non-enregistrement du journal binaire, empêchant la bibliothèque esclave de continuer à obtenir le journal binaire de la bibliothèque principale.

La sécurité Binlog lorsque MySQL plante est activée par défaut.

Slave_net_timeout est réduit par défaut.

Différentes installations

mysql_install_db n'est plus recommandé. Il est recommandé de le remplacer par mysqld --initialize pour terminer l'initialisation de l'instance. S'il y a déjà un fichier de données dans le répertoire cible pointé par datadir, il y aura [ERREUR] Abandon

Si vous ajoutez --initial-insecure lors de l'initialisation, un compte root@localhost avec un mot de passe vide sera créé, sinon il sera créé avec un mot de passe Le compte root@localhost, le mot de passe est écrit directement dans le fichier journal des erreurs. Les nouveaux utilisateurs doivent changer le mot de passe immédiatement après la connexion, sinon ils ne peuvent pas continuer le travail ultérieur ;

Apprentissage recommandé : Tutoriel vidéo 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