Android

Comment gérer les bases de données mysql et les utilisateurs à partir de la ligne de commande

Tutoriel MySQL : Créer une base et un utilisateur en ligne de commande | video2brain.com

Tutoriel MySQL : Créer une base et un utilisateur en ligne de commande | video2brain.com

Table des matières:

Anonim

MySQL est le système de gestion de base de données relationnelle open source le plus populaire. Le serveur MySQL nous permet de créer de nombreux utilisateurs et bases de données et d'accorder les privilèges appropriés pour que les utilisateurs puissent accéder et gérer les bases de données.

Ce didacticiel explique comment utiliser la ligne de commande pour créer et gérer des bases de données et des utilisateurs MySQL ou MariaDB.

Avant que tu commences

Avant de commencer ce didacticiel, nous supposons que vous avez déjà un serveur MySQL ou MariaDB installé sur votre système. Toutes les commandes seront exécutées en tant qu'utilisateur root.

Pour ouvrir l'invite MySQL, tapez la commande suivante et entrez le mot de passe de l'utilisateur racine MySQL lorsque vous y êtes invité:

mysql -u root -p

Créer une nouvelle base de données MySQL

Pour créer une nouvelle base de données MySQL, exécutez la commande suivante, remplacez simplement database_name par le nom de la base de données que vous souhaitez créer:

CREATE DATABASE database_name;

Query OK, 1 row affected (0.00 sec)

ERROR 1007 (HY000): Can't create database 'database_name'; database exists

Pour éviter les erreurs si la base de données portant le même nom que vous essayez de créer existe, vous pouvez utiliser la commande suivante:

CREATE DATABASE IF NOT EXISTS database_name;

Query OK, 1 row affected, 1 warning (0.00 sec)

Dans la sortie ci-dessus, Query OK signifie que la requête a réussi et 1 warning nous indique que la base de données existe déjà et qu'aucune nouvelle base de données n'a été créée.

Lister toutes les bases de données MySQL

Vous pouvez lister toutes les bases de données qui existent sur notre serveur MySQL ou MariaDB avec la commande suivante:

SHOW DATABASES;

La sortie ressemblera à ceci:

+--------------------+ | Database | +--------------------+ | information_schema | | database_name | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)

Les bases de données information_schema , mysql , performance_schema et sys sont créées au moment de l'installation et stockent des informations sur toutes les autres bases de données, la configuration du système, les utilisateurs, les autorisations et d'autres données importantes. Ces bases de données sont nécessaires au bon fonctionnement de l'installation MySQL.

Supprimer une base de données MySQL

La suppression d'une base de données MySQL est aussi simple que l'exécution d'une seule commande. Il s'agit d'une action irréversible et doit être exécutée avec prudence. Assurez-vous que vous ne supprimez pas une mauvaise base de données, car une fois que vous supprimez la base de données, elle ne peut pas être récupérée.

Pour supprimer une base de données MySQL ou MariaDB, exécutez la commande suivante:

DROP DATABASE database_name;

Query OK, 0 rows affected (0.00 sec)

ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't exist

Pour éviter cette erreur, vous pouvez utiliser la commande suivante:

DROP DATABASE IF EXISTS database_name;

Créer un nouveau compte utilisateur MySQL

Un compte d'utilisateur dans MySQL se compose d'un nom d'utilisateur et de parties de nom d'hôte.

Pour créer un nouveau compte utilisateur MySQL, exécutez la commande suivante, remplacez simplement 'database_user' par le nom de l'utilisateur que vous souhaitez créer:

CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password';

Dans la commande ci-dessus, nous avons défini la partie du nom d' localhost sur localhost ce qui signifie que cet utilisateur ne pourra se connecter au serveur MySQL que depuis l'hôte local (c'est-à-dire depuis le système sur lequel MySQL Server s'exécute). Si vous souhaitez accorder l'accès à partir d'un autre hôte, modifiez simplement l' localhost avec l'adresse IP de la machine distante ou utilisez '%' caractère générique '%' pour la partie hôte, ce qui signifie que le compte d'utilisateur pourra se connecter à partir de n'importe quel hôte.

Comme lorsque vous travaillez avec les bases de données pour éviter une erreur lorsque vous essayez de créer un compte utilisateur qui existe déjà, vous pouvez utiliser:

CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';

Query OK, 0 rows affected, 1 warning (0.00 sec)

Changer le mot de passe d'un compte utilisateur MySQL

La syntaxe pour changer un mot de passe de compte d'utilisateur MySQL ou MariaDB dépend de la version du serveur que vous exécutez sur votre système.

Vous pouvez trouver la version de votre serveur en exécutant la commande suivante:

mysql --version

ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';

SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');

Dans les deux cas, la sortie devrait ressembler à ceci:

Query OK, 0 rows affected (0.00 sec)

Lister tous les comptes d'utilisateurs MySQL

Vous pouvez répertorier tous les comptes d'utilisateurs MySQL ou MariaDB en interrogeant la table mysql.users :

SELECT user, host FROM mysql.user;

La sortie devrait ressembler à ci-dessous:

+------------------+-----------+ | user | host | +------------------+-----------+ | database_user | % | | database_user | localhost | | debian-sys-maint | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+ 6 rows in set (0.00 sec)

Supprimer le compte utilisateur MySQL

Pour supprimer un compte d'utilisateur, utilisez la commande suivante:

DROP USER 'database_user@'localhost';

ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost'

Identique à l'utilisation des bases de données pour éviter l'erreur que vous pouvez utiliser:

DROP USER IF EXISTS 'database_user'@'localhost';

Query OK, 0 rows affected, 1 warning (0.00 sec)

Accorder des autorisations à un compte d'utilisateur MySQL

Il existe plusieurs types de privilèges qui peuvent être accordés à un compte d'utilisateur. Vous pouvez trouver une liste complète des privilèges pris en charge par MySQL ici. Dans ce guide, nous allons passer en revue plusieurs exemples:

Pour accorder tous les privilèges à un compte d'utilisateur sur une base de données spécifique, utilisez la commande suivante:

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Pour regrouper tous les privilèges d'un compte d'utilisateur sur toutes les bases de données, utilisez la commande suivante:

GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

Pour regrouper tous les privilèges d'un compte d'utilisateur sur une table spécifique à partir d'une base de données, utilisez la commande suivante:

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

Révoquer les autorisations d'un compte d'utilisateur MySQL

REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Afficher les privilèges du compte utilisateur MySQL

Pour rechercher les privilèges accordés à un type de compte utilisateur MySQL spécifique:

SHOW GRANTS FOR 'database_user'@'localhost';

+---------------------------------------------------------------------------+ | Grants for database_user@localhost | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'database_user'@'localhost' | | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' | +---------------------------------------------------------------------------+ 2 rows in set (0.00 sec)

Conclusion

Ce didacticiel couvre uniquement les bases, mais il devrait être un bon début pour quiconque souhaite apprendre à gérer les bases de données MySQL et les utilisateurs à partir de la ligne de commande. Vous pouvez également consulter le didacticiel sur la façon de réinitialiser un mot de passe racine MySQL au cas où vous l'auriez oublié.

C'est tout! Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.

mysql mariadb