Maison  >  Article  >  base de données  >  Compilation MySQL, installation et brève introduction

Compilation MySQL, installation et brève introduction

黄舟
黄舟original
2017-09-30 10:56:211427parcourir

==========Diagramme du principe de fonctionnement MYSQL :

1> Introduction à la base de données : En termes simples, une base de données est un endroit qui stocke des données. Warehouse, qui stocke les données sur disque selon des règles spécifiques, peut gérer efficacement les données stockées dans la base de données via le système de gestion de base de données ;
Langage SQL : le SGBD utilise le langage SQL pour la gestion de la base de données. Le langage SQL est un langage de requête et de conception, principalement utilisé pour stocker des données, interroger des données, mettre à jour et gérer des bases de données relationnelles ;
Le langage SQL est divisé en trois parties

les instructions DDL (Data Definition Language), utilisant les instructions utilisées. pour définir des tables de base de données, afficher des index et des déclencheurs, etc.
         Comment
L'instruction DML (Data Manipulation Language) est utilisée pour insérer des données, interroger des données, mettre à jour des données et supprimer des données
                                                       int   Accorder
révoquer

Quels sont les systèmes de bases de données courants :
1. Oracle
2. DB2 d'IBM
3. Sybase
4. Microsoft Access et SQL Server
5. PostgreSQL open source
6. Open source Mysql

Fonctionnalités Mysql :

1. Multiplateforme, prend en charge plusieurs systèmes d'exploitation, AIX FreeBSD HP-UX Linux MacOS NovellNetware OpenBSD Solaris windows, etc.

2. Prend en charge multi-threading et peut utiliser pleinement les ressources matérielles (ressources CPU)
3. Prend en charge les grandes bases de données et peut gérer de grandes bases de données avec des dizaines de millions d'entrées.
4. Prend en charge plusieurs moteurs de stockage de plug-ins

mysql-server-5.6

1) InnoDB peut désormais limiter le problème d'utilisation excessive de la mémoire lorsqu'un grand nombre de tables sont ouvertes ( comme mentionné ici (Arrivé) (Un tiers a corrigé)

2) Amélioration des performances d'InnoDB. Tels que la séparation du mutex du noyau ; la séparation de l'opération de vidage du thread principal ; l'optimisation de plusieurs threads de perge ; l'optimisation de la mémoire importante, etc.

 3) Les informations sur les blocages InnoDB peuvent être enregistrées dans le journal des erreurs pour une analyse facile
 4) MySQL5. .6 prend en charge le délai de réplication permet à l'esclave et au maître de contrôler un intervalle de temps pour faciliter la récupération des données dans des circonstances particulières.
 5) Fonction de partition de table améliorée
 6) Fonction de réplication améliorée au niveau des lignes MySQL, qui peut réduire la surcharge du disque, de la mémoire, du réseau et d'autres ressources (uniquement les champs d'enregistrement qui peuvent déterminer les enregistrements de ligne)
 7) Binlog implémentation anti-crash

 8) Les événements de réplication utilisent la vérification crc32 pour améliorer la cohérence des données de réplication maître/esclave

 9) Ajout de log_bin_basename (il n'y avait aucune information sur l'emplacement du binlog dans les variables auparavant, ce qui était très gênant pour la supervision de la base de données)

2》Compilez et installez MYSQL :
  1>Installez les packages de dépendances :
   


  2>Créez un utilisateur : 🎜>
   3>Installez Mon sql :
  Analyse :

 #cmake Commande de compilation



-DCMAKE_INSTALL_PREFIX=/usr/local/mysql Définir le répertoire d'installation mysql

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

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock définit le chemin de la socket d'écoute, qui doit être un nom de chemin absolu. La valeur par défaut est /tmp/mysql.sock
   -DSYSCONFDIR=/etc Le fichier de configuration est placé sous /etc/
   -DDEFAULT_CHARSET=gbk Définit le jeu de caractères du serveur.
                                                                                                                                                                  Par DefALTUNE, MYSQL À STOCKER POUR ÊTRE LATIN1 (CP1252 WESTERN EUROPEAN) JEU DE CARACTÈRES. Le fichier cmake/character_sets.cmake contient une liste de noms de jeux de caractères autorisés.
-DDEFAULT_COLLATION=gbk_chinese_ci Définit les règles de classement du serveur.
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
Options du moteur de stockage :
MyISAM, MERGE, MEMORY et C Le moteur SV est compilé dans le serveur par défaut et n’est pas requis. Installer explicitement.
Pour compiler statiquement un moteur de stockage sur le serveur, utilisez -DWITH_engine_STORAGE_ENGINE= 1
Les valeurs du moteur de stockage disponibles sont : ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (prise en charge du partitionnement) et PERFSCHEM )                                                  Schéma)

-DMYSQL_DATADIR=/data/mysqldb Répertoire des fichiers de base de données mysql

-DMYSQL_TCP_PORT=3306 Définissez le port d'écoute du serveur MySQL, la valeur par défaut est 3306 S'il faut télécharger des fichiers facultatifs. Par exemple, avec cette option activée (définie sur 1), cmake téléchargera la suite de tests utilisée par Google pour exécuter les tests unitaires

4> && make isntall 5>Initialisation : Autoriser le répertoire d'installation de Mysql
# chown mysql:mysql /usr/local/mysql -R
Autoriser le répertoire de stockage de données Mysql
      # chown mysql : mysql /data/mysqldb -R
Autoriser le répertoire des journaux Mysl
#chown mysql:mysql /data/mysqldb/binlog/
#chown mysql:mysql /data/mysqldb/log/

Démarrer l'initialisation :

    /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldb

   Copiez le script de démarrage du service Mysql
     Modifier le script de démarrage du service MySQL (obligatoire pour plusieurs instances) 6> ; Fichier de configuration
Il n'y aura pas de my.cnf prêt à l'emploi dans l'entreprise à l'avenir si my.cnf n'est pas trouvé dans /etc/ après la compilation. et l'installation, veuillez accéder au répertoire de compilation d'origine, qui est le répertoire où se trouve le package décompressé, et recherchez le répertoire support-files, copiez my-default.cnf dans /etc/my.cnf
;

========== Détails du fichier de configuration :
# vim /etc/my.cnf
[client]
port = 3306 //Le numéro de port auquel le client est connecté connected
socket = /tmp/mysql.sock //L'emplacement de stockage du fichier sock connecté par le client

[mysqld]
#base
port = 3306 //Le port par défaut le nombre de mysql peut être modifié
user = mysql //utilisateur mysql spécifié
socket = /tmp/mysql.sock //Numéro de port utilisé pour la connexion
pid-file = /tmp/mysql.pid // PID principal du processus en cours d'exécution File
basedir = /usr/local/mysql //Répertoire d'installation MySQL
datadir = /data/mysqldb //Répertoire de données MySQL
tmpdir = /opt/mysqltmp //Table temporaire MySQL directory
open_files_limit = 10240 //Nombre de descripteurs de fichiers ouverts
explicit_defaults_for_timestamp
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
federated //Prend en charge la syntaxe SQL et la vérification des données, etc. sql_mode trois modes
mode ANSI, mode détendu, pour Insérer des données pour vérification. Si elles ne correspondent pas au type ou à la longueur défini, ajustez le type de données ou tronquez et enregistrez, et signalez un avertissement « avertissement »

Mode TRADITIONNEL, mode strict, lors de l'insertion. données dans les données MySQL, effectuez l'édition des données. Une vérification stricte garantit que les données ne peuvent pas être insérées et qu'une erreur est signalée. Lorsqu'elles sont utilisées pour les transactions, les transactions seront annulées

Mode STRICT_TRANS_TABLES. Mode strict, effectue une vérification stricte des données, des données incorrectes ne peuvent pas être insérées et une erreur d'erreur est signalée

server_id = 706 //Le numéro d'identification unique du service de réplication maître-esclave, la valeur est comprise entre 1 et.
#replicate-do -db = posp //Définir la seule bibliothèque répliquée
#replicate-ignore-db = mysql //Définir la seule bibliothèque répliquée
#log-slave-updates = 1 //Ceci L'option est utilisée pour la réplication maître-esclave. Ouvrez les informations du maître de réplication depuis le serveur
event_scheduler=1 //Ouvrez le planificateur horaire

max_connections = 2000 //#Nombre maximum de connexions simultanées L'augmentation de cette valeur nécessite une augmentation correspondante des descripteurs de fichiers autorisés. à ouvrir. Number
max_connect_errors = 10000 //Si l'erreur de connexion initiée par un utilisateur dépasse cette valeur, la prochaine connexion de l'utilisateur sera bloquée,
interactive_timeout = 600 //Le nombre de secondes pendant lesquelles le serveur attend une activité. avant de fermer la connexion interactive
wait_timeout = 600 //Le nombre de secondes pendant lesquelles le serveur attend une activité avant de fermer une connexion non interactive
skip-name-resolve //#garnt, l'adresse IP doit être utilisée, le nom d'hôte ne peut pas être utilisée, la résolution DNS est désactivée
sync_binlog= 0 //La sécurité de la transaction peut être garantie. La valeur par défaut est 0
log_bin_trust_function_creators = 1 //Ouvrir la fonction personnalisable MySQL

character-set-server = utf8 //Définir le jeu de caractères
default_storage_engine = InnoDB //Définir le moteur par défaut

#log
log-bin = /data/mysqldb/binlog/mysql-bin //Spécifiez le nom de fichier du journal binaire binlog
binlog_cache_size = 32m //La taille du cache du binlog
max_binlog_cache_size = 10g //Définissez le cache binlog maximum
binlog_stmt_cache_size = 32m //Définissez le cache binlo minimum
table_open_cache = 2048 //Taille du cache du descripteur de table, ce qui peut réduire le nombre d'ouvertures/fermetures de fichiers
max_binlog_size = 1024m / /Définissez le fichier journal binlog maximum sur 1G
binlog_format = mixte //format de journal binlog.
log_output = FILE //Confirmez la sortie dans le fichier journal
log-error = /data/mysqldb/log /mysql-error .log //Sortie du journal des erreurs système mysql
slow_query_log = 1 //Activer la journalisation lente
slow_query_log_file = /data/mysqldb/log/mysql-slow_query.log //Définir le chemin du journal lent output
general_log = 0 //Définir le journal général
general_log_file = /data/mysqldb/log/mysql-general-query.log //Définir le chemin pour la sortie du journal général
expire-logs-days = 30 //Le délai de conservation des journaux Pendant 30 jours
relay-log = /data/mysqldb/binlog/relay-bin //Définissez l'adresse pour la réplication reloa_log
relay-log-index= /data/mysqldb/binlog /relay-bin.index // Définir l'index reloa_log

#buffer
sort_buffer_size = 2m //#Le tampon requis pour la réorganisation lorsque la table MyISAM change. Généralement, 64 Mo suffisent
read_buffer_size = 2m //La taille du tampon utilisée pour l'analyse complète de la table MyISAM.
read_rnd_buffer_size = 2m //#Après le tri, lors de la lecture des lignes d'une séquence déjà triée, les données des lignes seront lues à partir de ce tampon pour empêcher la recherche de disque
join_buffer_size = 2m //# InnoDB est utilisé pour mettre en cache les données et

net_buffer_length = 16k //Lors de l'exécution de mysqldump, la longueur maximale nette du tampon La limite supérieure est de 16 Mo, la la valeur par défaut est 1 Mo
max_allowed_packet = 512m //Taille indépendante pour chaque connexion. La taille augmente dynamiquement
bulk_insert_buffer_size = 32m //# Ce tampon sera alloué lorsqu'une insertion en rafale est détectée myisam
max_heap_table_size = 512m// #La taille de la table mémoire
tmp_table_size = 512m//#La taille maximale de la table temporaire interne (en mémoire)
thread_cache_size = 100 //#Cache le nombre de threads réutilisables, vous pouvez Ajustement approprié
query_cache_size = 256m //#Spécifiez la taille du tampon de résultat de la requête MySQL. Le réglage peut être ajusté de manière appropriée
query_cache_limit = 10m //#La limite supérieure de l'ensemble de résultats pour la mise en cache d'une seule instruction SQL. La valeur par défaut est 4 Ko. Le réglage peut être ajusté de manière appropriée
query_cache_min_res_unit = 4k
key_buffer_size = 16m //#La taille du tampon de mots-clés, généralement utilisé pour tamponner le bloc d'index de la table MyISAM
myisam_sort_buffer_size = 64m //# Ceci est alloué dans chaque thread. Vous devez donc être prudent lorsque vous définissez des valeurs élevées
myisam_max_sort_file_size = 10g //La taille maximale du fichier temporaire autorisée lorsque MySQL reconstruit l'index Si la taille du fichier est. plus grand que cette valeur Grand, l'index sera créé via une mise en mémoire tampon clé-valeur (plus lente)
myisam_repair_threads = 1 //#Si une table a plus d'un index, MyISAM

#innodb
innodb_file_per_table = 1 #//#Oui Modifiez InnoDB en mode espace table indépendant. Chaque table de chaque base de données générera un espace de données
innodb_data_file_path = ibdata1:2048M:autoextend //#Si vous n'avez qu'un seul lecteur logique pour sauvegarder vos données. , un seul fichier à incrémentation automatique C'est suffisant
innodb_log_file_size = 128m //#La taille de chaque fichier journal dans le groupe de journaux,
innodb_log_files_in_group = 3 //#Le nombre total de fichiers dans le groupe de journaux en général. parler 2 ~ 3 est mieux
innodb_buffer_pool_size = 1g //taille du pool de tampons innodb
innodb_buffer_pool_instances = -1
innodb_max_dirty_pages_pct = 70 //#Le taux de pages sales maximum autorisé dans le pool de tampons InnoDB est de 60 à 90. OK
#innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_buffer_size = 16m # La taille du tampon utilisé pour mettre en mémoire tampon les données du journal Lorsque cette valeur est presque pleine, InnoDB devra vider les données sur le disqueinnodb_flush_log_at_trx_commit = 2
0 signifie que le journal n'est écrit dans le fichier journal qu'environ toutes les secondes et que le fichier journal est vidé sur le disque n° 2 signifie que le journal est écrit dans le fichier journal après chaque validation, mais le fichier journal est uniquement vidé sur le disque environ toutes les secondes

[mysql]
no-auto-rehash #Vous pouvez utiliser la touche de tabulation pour terminer la commande
prompt = (u@h) [d]_ #Affichage le nom d'hôte dans la commande Mysql
default-character -set = utf8 //Définir le jeu de caractères

7>Démarrez le service et définissez les variables d'environnement :

    #:vim /etc/profile La fin du dossier.
MySQL =/USR/LOCAL/MySQL/BIN
Chemin = $ PATH : $ MySQL
Chemin d'exportation
# : Source/ETC/Profil // En vigueur

Démarrage du service 🎜 >      #/etc/init.d/mysqld start

  Remarque :
    log_slave_updates     Pendant la réplication maître-esclave. Désactivez cette option sur le serveur maître et activez cette option sur l'esclave

==================== Analyse des problèmes courants :
Erreur rencontré après le démarrage de la base de données :

Solution :

1》Commentez une ligne sur innodb_data_file_path dans le fichier de configuration

2》 Supprimez ibdata1 ibprofile0 ibprofile1
Erreur deux :
1》Besoin de créer un dossier manquant ; 2》Définir les autorisations sur le répertoire précédent du dossier à créer :
chown mysql:mysql /tmpopt/
3》Vous Vous devrez peut-être également supprimer certains fichiers. Recherchez les fichiers suivants dans votre propre répertoire et supprimez-les :
ibdata1 ibprofile0 ibprofile1


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