Comment installer, sécuriser le réglage des performances du serveur de base de données MARIADB

Comment installer, sécuriser le réglage des performances du serveur de base de données MARIADB

Un serveur de base de données est un composant essentiel de l'infrastructure réseau nécessaire pour les applications d'aujourd'hui. Sans la possibilité de stocker, de récupérer, de mettre à jour et de supprimer des données (si nécessaire), l'utilité et la portée des applications Web et de bureau deviennent très limitées.

Installer, sécurisé et le réglage des performances du serveur MariaDB

De plus, savoir installer, gérer et configurer un serveur de base de données (afin qu'il fonctionne comme prévu) est une compétence essentielle que chaque administrateur système doit avoir.

Dans cet article, nous reviendrons brièvement comment installer et sécuriser un serveur de base de données MARIADB, puis nous expliquerons comment le configurer.

Installation et sécurisation d'un serveur MARIADB

Dans Centos 7.X, MariaDB a remplacé MySQL, qui peut encore être trouvé dans le Ubuntu (avec Mariadb). Il en va de même pour ouverte.

Par concitation, nous n'utiliserons que Mariadb Dans ce tutoriel, mais veuillez noter qu'en plus d'avoir des noms et des philosophies de développement différents, les deux Systèmes de gestion des bases de données relationnelles (SRBDS pour faire court) sont presque identiques.

Cela signifie que les commandes côté client sont les mêmes sur les deux Mysql et Mariadb, et les fichiers de configuration sont nommés et situés aux mêmes endroits.

Pour installer MariaDB, faites:

--------------- Sur Centos / Rhel 7 et Fedora 23 --------------- # yum Update && yum install mariaDb mariaDb-server # centos --------------- Sur Debian et Ubuntu --------------- $ sudo aptitude update && sudo aptitude installer mariadb-client mariaDb-server --------------- Sur Opensuse --------------- # Zypper Update && zypper installer mariaDb mariaDb-tools # openseSUSE 

Notez que, dans Ubuntu, Il vous sera demandé de saisir un mot de passe pour l'utilisateur racine du SGBDR.

Une fois les packages ci-dessus installés, assurez-vous que le service de base de données est en cours d'exécution et a été activé pour démarrer sur le démarrage (en Centos et ouverte Vous devrez effectuer cette opération manuellement, alors que dans Ubuntu Le processus d'installation en aura déjà pris soin pour vous):

--------------- Sur Centos / Rhel 7 et Fedora 23 --------------- # systemctl start mariaDB && systemctl activer mariaDB --------------- Sur Opensuse --------------- # systemctl start mysql && systemctl activer mysql 

Ensuite, exécutez le mysql_secure_installation scénario. Ce processus vous permettra de:

  1. Définir / réinitialiser le mot de passe de l'utilisateur racine du SGBDR
  2. Supprimer les connexions anonymes (permettant ainsi uniquement aux utilisateurs avec un compte valide pour vous connecter aux SRB))
  3. Désactiver l'accès root pour les machines autres que localhost
  4. supprimer la base de données de test (à laquelle tout le monde peut accéder)
  5. activer les changements associés à 1 à 4.

Pour une description plus détaillée de ce processus, vous pouvez vous référer à la section d'installation du post dans l'installation de la base de données MARIADB dans Rhel / Centos / Fedora et Debian / Ubuntu.

Configuration du serveur MariaDB

Les options de configuration par défaut sont lues à partir des fichiers suivants dans l'ordre donné: / etc / mysql / mon.CNF, / etc / mon.CNF, et ~ /.mon.CNF.

Le plus souvent, seulement / etc / mon.CNF existant. C'est sur ce fichier que nous définirons les paramètres à l'échelle du serveur (qui peuvent être remplacés avec les mêmes paramètres dans ~ /.mon.CNF pour chaque utilisateur).

La première chose que nous devons noter mon.CNF Est-ce que les paramètres sont organisés en catégories (ou groupes) où chaque nom de catégorie est enfermé avec des crochets.

Les configurations du système serveur sont données dans le [mysqld] Section, où vous ne trouverez généralement que les deux premiers paramètres du tableau ci-dessous. Les autres sont d'autres options fréquemment utilisées (si indiquées, nous modifierons la valeur par défaut avec une personnalité de notre choix):

Réglage et description Valeur par défaut
datadir est le répertoire où les fichiers de données sont stockés. datadir = / var / lib / mysql
Socket indique le nom et l'emplacement du fichier de douille qui est utilisé pour les connexions client locales. Gardez à l'esprit qu'un fichier de socket est une ressource utilisée pour transmettre des informations entre les applications. socket = / var / lib / mysql / mysql.chaussette
bind_address est l'adresse où le serveur de base de données écoutera pour les connexions TCP / IP. Si vous avez besoin que votre serveur écoute plus d'une adresse IP, omettez ce paramètre (0.0.0.0 ce qui signifie qu'il écoutera sur toutes les adresses IP affectées à cet hôte spécifique).

Nous allons changer cela pour demander au service d'écouter uniquement sur son adresse principale (192.168.0.13):

bind_address = 192.168.0.13

bind_address = 0.0.0.0
Le port représente le port où le serveur de base de données écoutera.

Nous remplacerons la valeur par défaut (3306) par 20500 (mais nous devons nous assurer que rien d'autre n'utilise ce port):
port = 20500

Alors que certaines personnes soutiendront que la sécurité par l'obscurité n'est pas une bonne pratique, modifier les ports d'application par défaut pour les ports plus élevés est une méthode efficace de rudimentaire pour décourager les analyses de port.

port = 3306
innodb_buffer_pool_size est le pool de tampons (en octets) de mémoire alloué aux données et index qui sont fréquemment accessibles lorsque vous utilisez InNODB (qui est la valeur par défaut de MariADB) ou Xtradb comme moteur de stockage.

Nous remplacerons la valeur par défaut par 256 Mo:

innodb_buffer_pool_size = 256m

innodb_buffer_pool_size = 134217728
skip_name_resolve indique si les noms d'hôte seront résolus ou non sur les connexions entrantes. Si vous êtes défini sur 1, comme nous le ferons dans ce guide, seules les adresses IP.

Sauf si vous avez besoin de noms d'hôtes pour déterminer les autorisations, il est conseillé de désactiver cette variable (afin d'accélérer les connexions et les requêtes) en définissant sa valeur sur 1:

skip_name_resolve = 1

skip_name_resolve = 0
Query_cache_size représente la taille (en octets) disponible pour le cache de requête dans le disque, où les résultats de certaines requêtes sont stockés pour une utilisation future lorsqu'une requête identique (à la même base de données et en utilisant le même protocole et le même jeu de caractères) est effectué.

Vous devez choisir une taille de cache de requête qui correspond à vos besoins en fonction de 1) le nombre de requêtes répétitives, et 2) le nombre approximatif d'enregistrements que les requêtes répétitives devraient retourner. Nous allons définir cette valeur à 100 Mo pour le moment:

query_cache_size = 100m

query_cache_size = 0 (ce qui signifie qu'il est désactivé par défaut)
Max_Connections est le nombre maximum de connexions client simultanées au serveur. Nous définirons cette valeur sur 30:
max_connections = 30EACH Connexion utilisera un thread et consommera ainsi la mémoire. Prendre en compte ce fait tout en définissant Max_Connections.
max_connections = 151
thread_cache_size indique les nombres de threads que le serveur alloue à la réutilisation après qu'un client déconnecte et libère des threads précédemment utilisés. Dans cette situation, il est moins cher (en termes de performance) de réutiliser un fil que d'instancier un nouveau.

Encore une fois, cela dépend du nombre de connexions que vous attendez. Nous pouvons définir cette valeur en toute sécurité sur la moitié du nombre de MAX_Connections:

thread_cache_size = 15

thread_cache_size = 0 (désactivé par défaut)

Dans Centos, Nous devrons dire Selinux autoriser Mariadb écouter sur un port non standard (20500) Avant de redémarrer le service:

# yum installer la politique de la politique de la politique-python # le port de Semanage -a -t mysqld_port_t -p tcp 20500 

Puis redémarrez le service mariaDB.

Réglage de la performance mariadb

Pour nous aider à vérifier et à régler la configuration selon nos besoins spécifiques, nous pouvons installer mysqltuner (Un script qui fournira des suggestions pour améliorer les performances de notre serveur de base de données et augmenter sa stabilité):

# wget https: // github.com / major / mysqltuner-perl / tarball / maître # tar xzf maître 

Ensuite, modifiez le répertoire dans le dossier extrait du tarball (la version exacte peut différer dans votre cas):

# CD Major-Mysqltuner-Perl-7DABF27 

et l'exécutez (vous serez invité à saisir les informations d'identification de votre compte MariaDB administratif)

# ./ mysqltuner.PL 

La sortie du script est en soi très intéressante, mais passons au bas où les variables à ajuster sont répertoriées avec la valeur recommandée:

Mariadb Performance Tunning

Le query_cache_type Le réglage indique si le cache de requête est désactivé (0) ou activé (1). Dans ce cas, mysqltuner nous conseille de le désactiver.

Alors pourquoi nous conseillons-nous de le désactiver maintenant? La raison en est que le cache de requête est principalement utile dans les scénarios à lecture haute / faible d'écriture (ce qui n'est pas notre cas, car nous venons d'installer le serveur de base de données).

AVERTISSEMENT: Avant d'apporter des modifications à la configuration d'un serveur de production, vous êtes fortement encouragé à consulter un administrateur de base de données experts pour vous assurer qu'une recommandation donnée par MySqlTuner n'aura pas d'impact négatif sur un paramètre existant.

Résumé

Dans cet article, nous avons expliqué comment configurer un serveur de base de données MARIADB après l'avoir installé et sécurisé. Les variables de configuration répertoriées dans le tableau ci-dessus ne sont que quelques paramètres que vous voudrez peut-être considérer lors de la préparation du serveur à utiliser ou lors de son réglage plus tard. Reportez-vous toujours à la documentation officielle de MARIADB avant d'apporter des modifications ou de vous référer à nos conseils de réglage des performances MARIADB:

Ne manquez pas: 15 Conseils de réglage et d'optimisation des performances MariADB utiles

Comme toujours, n'hésitez pas à nous faire savoir si vous avez des questions ou des commentaires sur cet article. Y a-t-il d'autres paramètres de serveur que vous aimez utiliser? N'hésitez pas à partager avec le reste de la communauté en utilisant le formulaire de commentaire ci-dessous.

Devenir un administrateur système certifié Linux