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.
L'environnement d'exploitation de ce tutoriel : système windows10, version mysql8.0.22, ordinateur Dell G3.
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
–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'utilisationAvant 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.
PerformanceAmé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 rigueurLe 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éfautLe 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!