Apprenez à installer et à configurer Mariadb, un système de gestion de la base de données relationnelle populaire à source ouverte-source (RDBM).
est développé par la communauté et a le support commercial option. Il est prévu que Mariadb reste très compatible avec MySQL, bien qu’il existe des déviations.
Dans cet article, nous couvrirons l’installation et la configuration de Mariadb à Ubuntu 20.x et Centos 7.x / 8. X et à la fin, nous examinerons certaines des meilleures pratiques pour assurer et améliorer leurs performances.
Mariadb à Ubuntu
à Ubuntu 20.x, Mariadb est disponible directement à partir de sa valeur par défaut. référentiels. Nous utiliserons APT pour cette tâche.
Mise à jour d’abord les données des référentiels APT via:
$ sudo apt update
Une fois que les données sont mises à jour de Le référentiel, exécuté:
$ sudo apt install mariadb-server
Ceci installera Mariadb et les paquets requis. Confirmez avec ‘y’ pour tout message que vous pouvez recevoir lors de l’exécution de la commande précédente.
Do you want to continue? Y
mariadb en cents 7.x
Pour Centos 7.x, la version Mariadb disponible dans le référentiel Centos par défaut est 5.X. Nous allons installer la dernière version disponible de Mariadb.
Pour cela, nous avons d’abord besoin de configurer un référentiel miam supplémentaire. Mariadb fournit un moyen simple d’utiliser mariadb_repo_setup
script. Pour configurer le référentiel, exécutez les commandes suivantes dans votre système Centos 7.x:
$ sudo yum install wget$ wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup$ chmod +x mariadb_repo_setup$ sudo ./mariadb_repo_setup
Ce script configurera le référentiel Yum requis pour installer la dernière version de Mariahb automatiquement. Au moment de la rédaction de cet article, il est 10.x.
ou au cas où vous voulez aller manuellement, vous pouvez configurer un référentiel manuel YUM en créant un nouveau fichier de référentiel tel que:
$ sudo vi /etc/yum.repos.d/MariaDB.repo
Ajoutez les détails suivants au fichier de référentiel et enregistrez-le:
name = MariaDBbaseurl = http://yum.mariadb.org/10.5/centos7-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1
maintenant à installer Mariadb, exécutez la commande suivante:
$ sudo yum install MariaDB-server
confirmez tout message qui apparaît lors de l’installation en entrant ‘y’:
Is this ok : y
Ceci complète l’installation du serveur Mariadb et des paquets dépendants.
Mariadb in Centos 8.x
pour 8.x Centos, la version disponible des défauts des référentiels est de 10,3 ou plus récent. Nous pouvons installer Mariadb directement à l’aide de la commande DNF:
Sinon, pour obtenir la dernière version disponible, vous pouvez suivre la méthode manuelle comme indiqué dans la section précédente à Centos 7.x et cela devrait vous aider à travailler.
Démarrer Mariahb
sur une machine Ubuntu, vous aurez le service MariDB en cours d’exécution juste après l’installation, tandis que pour Centos, nous avons Pour activer et démarrer manuellement les services pertinents.
Dans tous les cas, Ubuntu et Centos, exécutez les commandes suivantes pour démarrer le service MARIADB, activez-la au démarrage et vérifiez-le:
Sortie:
$ sudo systemctl start mariadb.service$ sudo systemctl enable mariadb.serviceCreated symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.$ sudo systemctl status mariadb.service● mariadb.service - MariaDB 10.5.8 database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/mariadb.service.d └─migrated-from-my.cnf-settings.conf Active: active (running) since Thu 2020-12-31 13:20:04 IST; 13s ago Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 13521 (mariadbd) Status: "Taking your SQL requests now..." CGroup: /system.slice/mariadb.service └─13521 /usr/sbin/mariadbdDec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 InnoDB: 10.5.8 started; log sequence number 45118; transaction id 20Dec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 Plugin 'FEEDBACK' is disabled.Dec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_poolDec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 InnoDB: Buffer pool(s) load completed at 201231 13:20:04Dec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 Server socket created on IP: '::'.Dec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 Reading of all Master_info entries succeededDec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 Added new Master_info '' to hash tableDec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 /usr/sbin/mariadbd: ready for connections.Dec 31 13:20:04 centos7vm mariadbd: Version: '10.5.8-MariaDB' socket: '/var/lib/mysql/mysql.sock' port: 3306 MariaDB ServerDec 31 13:20:04 centos7vm systemd: Started MariaDB 10.5.8 database server.$
Assurer Mariadb
comme première étape après l’installation de Mariadb, Nous devons assurer sa mise en œuvre en définissant un mot de passe racine, désactivant la connexion racine distante, éliminant ainsi la base de données de test, ainsi que Utilisateurs anonymes et en rappelant enfin les privilèges.
exécutez la commande Mariadb Harden suivante:
$ sudo mysql_secure_installation
Vous pouvez suivre les indications par défaut des actions suggérées Sauf si vous avez une exigence spécifique de dévier.
sortie:
$ sudo mysql_secure_installationNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!In order to log into MariaDB to secure it, we'll need the currentpassword for the root user. If you've just installed MariaDB, andhaven't set the root password yet, you should just press enter here.Enter current password for root (enter for none):OK, successfully used password, moving on...Setting the root password or using the unix_socket ensures that nobodycan log into the MariaDB root user without the proper authorisation.You already have your root account protected, so you can safely answer 'n'.Switch to unix_socket authentication n ... skipping.You already have your root account protected, so you can safely answer 'n'.Change the root password? n ... skipping.By default, a MariaDB installation has an anonymous user, allowing anyoneto log into MariaDB without having to have a user account created forthem. This is intended only for testing, and to make the installationgo a bit smoother. You should remove them before moving into aproduction environment.Remove anonymous users? Y ... Success!Normally, root should only be allowed to connect from 'localhost'. Thisensures that someone cannot guess at the root password from the network.Disallow root login remotely? Y ... Success!By default, MariaDB comes with a database named 'test' that anyone canaccess. This is also intended only for testing, and should be removedbefore moving into a production environment.Remove test database and access to it? Y - Dropping test database... ... Success! - Removing privileges on test database... ... Success!Reloading the privilege tables will ensure that all changes made so farwill take effect immediately.Reload privilege tables now? Y ... Success!Cleaning up...All done! If you've completed all of the above steps, your MariaDBinstallation should now be secure.Thanks for using MariaDB!$
Ici, nous utiliserons l’authentification du système, de sorte que cela n’a donc pas Configuré un mot de passe racine distinct pour Mariadb, car il est déjà sûr. Si nécessaire, vous pouvez toujours configurer un mot de passe racine distinct.
Validation de la configuration
Pour vérifier la configuration Mariadb, exécutée (spécifiez le mot de passe que vous configurez lorsque mysql_secure_installation
ou, si omettez-le. A cette époque, utilisez les informations d’identification racine de votre système):
$ sudo mysqladmin -u root -p versionEnter password:mysqladmin Ver 9.1 Distrib 10.5.8-MariaDB, for Linux on x86_64Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Server version 10.5.8-MariaDBProtocol version 10Connection Localhost via UNIX socketUNIX socket /var/lib/mysql/mysql.sockUptime: 53 min 17 secThreads: 2 Questions: 77 Slow queries: 0 Opens: 20 Open tables: 14 Queries per second avg: 0.024$
Vous pouvez configurer un nouveau compte administrateur au lieu de la racine comme indiqué ci-dessous (modifier la valeur de password
avec lequel vous avez l’intention de définir admin
compte):
$ sudo mariadbWelcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 44Server version: 10.5.8-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB > GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;Query OK, 0 rows affected (0.003 sec)MariaDB > FLUSH PRIVILEGES;Query OK, 0 rows affected (0.000 sec)MariaDB > exitBye$
Vérifiez l’accès avec le nouveau admin
utilisateur comme (entrez le password
comme indiqué à l’étape précédente):
$ mysqladmin -u admin -p versionEnter password:mysqladmin Ver 9.1 Distrib 10.5.8-MariaDB, for Linux on x86_64Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Server version 10.5.8-MariaDBProtocol version 10Connection Localhost via UNIX socketUNIX socket /var/lib/mysql/mysql.sockUptime: 56 min 59 secThreads: 2 Questions: 83 Slow queries: 0 Opens: 20 Open tables: 14 Queries per second avg: 0.024$
Optimisation de l’OS
Après l’installation et la sécurisation de vos paramètres Mariadb, vous devez prendre des mesures pour régler votre système d’exploitation et votre base de données pour une performance optimale. Ce paramètre variera en fonction de la configuration de votre système, du type d’utilisation, du nombre d’utilisateurs et d’autres facteurs.
du point de vue du système d’exploitation, certains paramètres système peuvent être configurés pour Mariadb que nous va discuter maintenant.
Configuration du noyau Linux – Programmeur d’E / S
Les programmeurs d’E / S recommandés pour Mariadb sont noop
et
. Pour vérifier l’utilisation
$ sudo cat /sys/block/sda/queue/scheduler kyber bfq none$
peut être modifiée en émettant la commande suivante et son effet, S’il y en a, il sera immédiat sur les performances du système:
$ sudo echo noop > /sys/block/sda/queue/scheduler
pour le rendre persistant, vous devez le configurer dans le fichier de configuration de la navigation comme indiqué Ci-dessous dans /etc/default/grub
, reconstruit grub et redémarrez le système.
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"
limites de ressources: limite de fichiers ouverts
Linux limite généralement le nombre de descripteurs de fichiers que chaque processus peut s’ouvrir. Pour un système de base de données actif, cette limite peut facilement dépasser ou affecter les performances. Dans de nombreux systèmes Linux, cette limite par défaut est de 1024. De plus, il existe une option lisse et stricte.
Pour augmenter la limite, vous pouvez ajouter les lignes suivantes dans votre /etc/security/limits.conf
:
mysql soft nofile 65535mysql hard nofile 65535
Il sera nécessaire de redémarrer le système après quoi mysql
L’utilisateur peut voir et utiliser les nouvelles limites. Ceci peut être vérifié comme suit:
$ ulimit -Sn65535$ ulimit -Hn65535
limites de ressources: Taille du fichier principal
Linux limite la taille des fichiers centraux en tant que SE Il a vu dans l’affaire précédente. Encore une fois, cela a une limite douce et rigide, par défaut, la limite molle est définie sur 0, ce qui désactive efficacement la génération de fichiers centraux. Pour permettre à la génération de fichiers centraux (d’autres configurations nécessaires pour générer des renversements de mémoire), nous pouvons augmenter cette valeur à /etc/security/limits.conf comme:
mysql soft core unlimitedmysql hard core unlimited
Après le redémarrage du système,mysql
L’utilisateur pourrait voir les nouvelles valeurs à l’aide deulimit
commande comme:
$ ulimit -Scunlimited$ ulimit -Hcunlimited
Swappiess Stock
La valeur d’échange de Linux détermine la probabilité que le système modifie une page de mémoire à l’espace d’échange configuré dans le système. Habituellement, la valeur par défaut est définie sur 60, qui peut être vérifiée à partir de:
sysctl vm.swappiness
Sa valeur peut osciller entre 0 et 100, où une valeur plus basse une probabilité d’échange plus faible. Sur un serveur de base de données uniquement Mariahb, nous souhaitons réduire cette valeur à 0 pour éviter d’utiliser le plus possible. Remarque ici que la configuration de la valeur d’échange de 0 doit être effectuée avec prudence compte tenu des autres facteurs de conception du système, car dans le cas d’une utilisation élevée de la mémoire ou de la charge d’E / S, il est possible que le noyau élimine le processus de mémoire insuffisant ( OOM).
Étant donné qu’une configuration d’échange basse est recommandée pour les charges de travail de la base de données et, comme telles, pour les bases de données Mariahb, il est recommandé d’établir l’échange à une valeur de 1. Vous pouvez ajouter la ligne suivante. /etc/sysctl.conf
de sorte que ce changement est persistant:
vm.swappiness = 1
Les modifications entreront en vigueur après le redémarrage du système, bien que vous peut toujours le faire à l’avance à l’aide de sysctl
commande:
sysctl -w vm.swappiness=1
Optimisations du système de fichiers
Pour Mariadb, les meilleurs systèmes de fichiers Linux sont généralement considérésext4
,XFS
etBtrfs
qui sont tous inclus dans le noyau principal Linux et sont largement compatibles.Ces systèmes de fichiers sont disponibles dans la plupart des distributions Linux. Chaque système de fichiers a ses propriétés et ses fonctionnalités uniques et peut être choisie en fonction des exigences suivant un examen approprié.
En outre, il est peu probable qu’il ait besoin d’enregistrer l’heure d’accès au fichier sur un serveur de base pour Les données. Nous pouvons la désactiver pour améliorer les performances. Vous pouvez monter le système de fichiers correspondant avec noatime
Option ou l’ajouter dans les options de montage dans /etc/fstab
Fichier pour le rendre persistant.
Optimisation de la base de données
Il existe plusieurs paramètres optimisables internes à la fonctionnement de Mariadb qui peut être personnalisé en fonction des exigences et des besoins de chacun.
Nous discuterons de certains d’entre eux ici .
mariadb est défini principalement par my.cnf
fichier.
sur ubuntu, vous pouvez trouver my.cnf
AT:
/etc/mysql/my.cnf
Entre-temps Centos est situé dans:
/etc/my.cnf
SE vous peut consulter une documentation détaillée sur laquelle des variables sont disponibles pour s’ajuster au fichier de configuration à partir d’ici.
Cela dépend également du type de moteur utilisé par Mariadb, à savoir, MyISAM
et InnoDB or XtraDB
. Tous deux ont leurs propres avantages et inconvénients et choisissent que l’on dépend des exigences de la base de données et de l’application.
Nous devons définir innodb_buffer_pool_size
environ 80% de sa mémoire. Cela garantit que 80% de votre ensemble de travail est en mémoire.
Certains des autres paramètres réglables importants sont les suivants:
Plus de détails À propos de l’ajustement des variables InnoDB ou XTRADB peut être trouvé ici. Voir ceci pour toutes les options de réglage disponibles pour Mariadb.
Si vous êtes intéressé, vérifiez ces ressources pour apprendre SQL et NOSQL.
Conclusion
Mariadb est l’une des options populaires en matière de DBMS de relation. Être open source avec une communauté diverse ajoute davantage à celui-ci.
Pour plus d’informations, consultez votre documentation comprenant des sujets tels que SQL de base SQL, Migration, Mariadb Administration, Haute disponibilité, Réglage de la performance, Stockage des moteurs, Programmation et personnalisation. Vous pouvez également désactiver l’enregistrement binaire si vous n’utilisez pas de cluster.