Avec la sortie de CentOS 7, MariaDB a remplacé MySQL comme système de base de données par défaut. MariaDB a été créé par les développeurs originaux de MySQL, et est un remplacement instantané et amélioré de MySQL avec une équivalence binaire de bibliothèque et une correspondance exacte avec les API et commandes MySQL.
Cet article décrit une installation de base d'un serveur de base de données MariaDB sur CentOS Linux. Vous devrez peut-être installer d'autres packages pour permettre aux applications d'utiliser MariaDB, telles que des extensions pour PHP. Consultez la documentation de votre application pour plus de détails.
Installer le serveur de base de données
Suivez les étapes de cette section pour installer le serveur de base de données principal.
Installer MariaDB
Installez le serveur MariaDB via le gestionnaire de packages CentOS (yum) en exécutant la commande suivante à une invite de commande :
sudo yum install mariadb-server
Autoriser l'accès à distance
Exécutez la commande suivante pour autoriser l'accès à distance :
firewall-cmd --zone=public --add-service=mysql --permanent
Définir le mot de passe root
Étant donné que vous venez d'installer le serveur de base de données MariaDB, le compte root n'a pas de mot de passe défini. Utilisez la commande suivante pour définir le mot de passe root et d'autres paramètres importants :
/usr/bin/mysql_secure_installation
Démarrer et arrêter le service de base de données
Une fois l'installation terminée, vous pouvez démarrer le service de base de données à l'aide des commandes de cette section. Si le système est déjà démarré, un message vous informe que le service est déjà en cours d'exécution.
Utilisez la commande suivante pour démarrer MariaDB :
sudo systemctl start mariadb.service
Utilisez la commande suivante pour arrêter MariaDB :
sudo systemctl stop mariadb.service
Lancer au redémarrage
Pour vous assurer que le serveur de base de données se lance après un redémarrage, vous devez activer le chkconfig
utilitaire. Utilisez la commande suivante pour cela :
sudo systemctl enable mariadb.service
Démarrer le shell MariaDB
Il existe plusieurs façons de travailler avec un serveur MariaDB, mais cet article se concentre sur l'approche la plus basique et la plus compatible :la mariadb
coque.
-
À l'invite de commande, exécutez la commande suivante pour lancer le shell et entrez-la en tant qu'utilisateur root :
/usr/bin/mysql -u root -p
-
Lorsque vous êtes invité à saisir un mot de passe, saisissez celui que vous avez défini lors de l'installation ou, si vous n'en avez pas défini, appuyez sur Entrée pour soumettre nopassword.
L'invite de shell suivante devrait apparaître :
MariaDB [(none)]>
Afficher les utilisateurs
MariaDB et MySQL stockent les informations des utilisateurs dans leurs propres bases de données. Le nom de la base de données est mysql . Dans cette base de données, les informations sur l'utilisateur se trouvent dans une table, un ensemble de données nommé user . Si vous souhaitez voir quels utilisateurs sont configurés dans la table des utilisateurs MySQL, exécutez la commande suivante :
SELECT User, Host, Password FROM mysql.user;
La liste suivante décrit les parties de cette commande :
- SÉLECTIONNER indique à MySQL que vous demandez des données.
- Utilisateur, Hôte, Mot de passe indique à MySQL dans quels champs vous voulez qu'il regarde. Les champs sont des catégories pour les données d'une table. Dans ce cas, vous recherchez le nom d'utilisateur, l'hôte associé au nom d'utilisateur et l'entrée de mot de passe cryptée.
- DEpuis mysql.user dit à MySQL d'obtenir les données de mysql base de données et l'utilisateur tableau.
- Un point-virgule (;) termine la commande.
Hôtes utilisateurs
L'exemple suivant est le résultat de la requête précédente :
SELECT User, Host, Password FROM mysql.user;
+------------------+-----------+-------------------------------------------+
| User | Host | Password |
+------------------+-----------+-------------------------------------------+
| root | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
| root | 127.0.0.1 | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
| root | ::1 | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
+------------------+-----------+-------------------------------------------+
Les utilisateurs sont associés à un hôte, en particulier l'hôte auquel ils se connectent. L'utilisateur root dans cet exemple est défini pour localhost , pour l'adresse IP de localhost , et le nom d'hôte du serveur. Vous devez généralement définir un utilisateur uniquement pour l'hôte à partir duquel vous vous connectez généralement.
Si vous exécutez votre application sur le même ordinateur que le serveur MariaDB, l'hôte auquel il se connecte par défaut est localhost . Tous les nouveaux utilisateurs que vous créez doivent avoir localhost dans leur hébergeur champ.
Si votre application se connecte à distance, l'hôte l'entrée que MariaDB recherche est l'adresse IP ou le nom d'hôte DNS de l'ordinateur distant (celui d'où vient le client).
Créer une base de données
Il y a une différence entre un serveur de base de données et une base de données , même si ces termes sont souvent utilisés de manière interchangeable. MariaDB est un serveur de base de données, ce qui signifie qu'il suit les bases de données et en contrôle l'accès. La base de données stocke les données et c'est la base de données à laquelle les applications tentent d'accéder lorsqu'elles interagissent avec MariaDB.
Certaines applications créent une base de données dans le cadre de leur processus de configuration, mais d'autres vous demandent de créer une base de données et d'en informer l'application.
Pour créer une base de données, connectez-vous à mariadb
shell et exécutez la commande suivante en remplaçant demodb
avec le nom de la base de données que vous souhaitez créer :
CREATE DATABASE demodb;
La base de données est créée. Vous pouvez vérifier sa création en exécutant une requête pour répertorier toutes les bases de données. L'exemple suivant montre la requête et l'exemple de sortie :
SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| demodb |
| mysql |
+--------------------+
3 rows in set (0.00 sec)
Gérer les utilisateurs et les privilèges
Utilisez les instructions de cette section pour ajouter des utilisateurs à la base de données et pour accorder et révoquer des privilèges.
Ajouter des utilisateurs et des privilèges
Lorsque les applications se connectent à la base de données à l'aide de l'utilisateur root, elles ont généralement plus de privilèges qu'elles n'en ont besoin. Vous pouvez créer un nouvel utilisateur que les applications peuvent utiliser pour se connecter à la nouvelle base de données. Dans l'exemple suivant, un utilisateur nommé demouser est créé.
Pour créer un nouvel utilisateur, exécutez la commande suivante dans le mariadb
coque :
CREATE USER 'demouser'@'localhost' IDENTIFIED BY 'demopassword';
Vous pouvez vérifier que l'utilisateur a été créé en exécutant à nouveau une requête SELECT :
SELECT User, Host, Password FROM mysql.user;
+----------+-----------+------------------------------------------+
| User | Host | Password |
+----------+-----------+------------------------------------------+
| root | localhost | 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root | demohost | 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root | 127.0.0.1 | 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| demouser | localhost | 0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6 |
+----------+-----------+------------------------------------------+
Accorder des privilèges d'utilisateur de base de données
Juste après avoir créé un nouvel utilisateur, il n'a aucun privilège. L'utilisateur peut être utilisé pour se connecter à MariaDB, mais il ne peut pas être utilisé pour apporter des modifications à la base de données.
-
Donnez à l'utilisateur tous les privilèges pour votre nouvelle base de données en exécutant la commande suivante :
GRANT ALL PRIVILEGES ON demodb.* to demouser@localhost;
-
Videz les privilèges pour que la modification prenne effet.
FLUSH PRIVILEGES;
-
Pour vérifier que les privilèges ont été définis, exécutez la commande suivante :
SHOW GRANTS FOR 'demouser'@'localhost';
MariaDB renvoie les commandes nécessaires pour reproduire les privilèges de cet utilisateur si vous deviez reconstruire le serveur.
USAGE on \*.\*
signifie que l'utilisateur n'obtient aucun privilège sur quoi que ce soit par défaut. Cette commande est remplacée par la deuxième commande, qui est la subvention que vous avez exécutée pour la nouvelle base de données.+-----------------------------------------------------------------------------------------------------------------+ | Grants for demouser@localhost | +-----------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' | | GRANT ALL PRIVILEGES ON `demodb`.* TO 'demouser'@'localhost' | +-----------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.00 sec)
Révoquer les privilèges
Parfois, vous devrez peut-être révoquer (supprimer) les privilèges d'un utilisateur. Par exemple, supposons que vous accordiez ALL
privilèges à 'demouser'@'localhost', mais vous avez accidentellement accordé des privilèges à toutes les autres bases de données, comme indiqué dans les commandes suivantes :
+-----------------------------------------------------------------------------------------------------------------+
| Grants for demouser@localhost |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' |
| GRANT ALL PRIVILEGES ON *.* TO 'demouser'@'localhost' |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Pour corriger l'erreur, vous pouvez utiliser un REVOKE
déclaration, suivie de GRANT
déclaration pour appliquer les privilèges corrects.
REVOKE ALL ON *.* FROM demouser@localhost;
GRANT ALL PRIVILEGES ON demodb.* to demouser@localhost;
SHOW GRANTS FOR 'demouser'@'localhost';
+-----------------------------------------------------------------------------------------------------------------+
| Grants for demouser@localhost |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' |
| GRANT ALL PRIVILEGES ON 'demodb'TO 'demouser'@'localhost' |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Maintenant, votre utilisateur dispose des privilèges corrects et votre serveur de base de données est légèrement plus sécurisé (octroi de privilèges tels que ALL on *.*
est considérée comme une très mauvaise pratique). Vous devriez également lire la documentation officielle de MariaDB concernant les choix de privilèges possibles, pour n'accorder que les privilèges vraiment nécessaires, plutôt que d'utiliser ALL
.
Résumé
Si vous créez simplement une base de données et un utilisateur, vous avez terminé. Les concepts abordés dans cet article devraient vous donner un bon départ pour en savoir plus.