MySQL Administration
Démarrer et arrêter le serveur MySQL
Sur un système Windows
Démarrer le serveur MySQL :
1, Via l'outil de gestion « Services » :Ouvrez la boîte de dialogue Exécuter (Win + R), saisissezservices.msc, recherchez le service « MySQL », faites un clic droit et sélectionnez « Démarrer ».
2. Via l'invite de commandes :Ouvrez l'invite de commandes (en tant qu'administrateur), saisissez la commande suivante :
net start mysql
Arrêter le serveur MySQL :
1, Via l'outil de gestion « Services » :De même, ouvrez la boîte de dialogue Exécuter, saisissez services.msc, recherchez le service « MySQL », faites un clic droit et sélectionnez « Arrêter ».
2, Via l'invite de commandes :Ouvrez l'invite de commandes (en tant qu'administrateur), saisissez la commande suivante :
net stop mysql
Sur un système Linux
1. Démarrer le service MySQL :
Utilisez la commandesystemd(applicable à la plupart des distributions Linux modernes, telles qu'Ubuntu, CentOS, etc.) :
sudo systemctl start mysql
Utilisez la commandeservice(dans certaines distributions plus anciennes) :
sudo service mysql start
2. Arrêter le service MySQL :
En utilisant systemd :
sudo systemctl stop mysql
En utilisant la commande service :
sudo service mysql stop
3. Redémarrer le service MySQL :
En utilisant systemd :sudo systemctl restart mysql
En utilisant la commande service :
sudo service mysql restart
4. Vérifier l'état du service MySQL :
Utilisation de la commande systemd :
sudo systemctl status mysql
En utilisant la commande service :
sudo service mysql status
Système Mac OS
Démarrer le service MySQL :
Utilisation de la ligne de commande :
sudo /usr/local/mysql/support-files/mysql.server start
Arrêter le service MySQL :
Utilisation de la ligne de commande :
sudo /usr/local/mysql/support-files/mysql.server stop
Redémarrer le service MySQL :
Utilisation de la ligne de commande :
sudo /usr/local/mysql/support-files/mysql.server restart
Vérifier l'état du service MySQL :
Utilisation de la ligne de commande :
sudo /usr/local/mysql/support-files/mysql.server status
Dans les commandes ci-dessus, mysql peut varier en raison de chemins d'installation ou de versions différents.
Sur Mac OS, le chemin d'installation de MySQL est généralement /usr/local/mysql/, vous devez donc utiliser le script mysql.server dans ce chemin pour démarrer et arrêter le service MySQL.
Paramètres utilisateur MySQL
Dans MySQL, les paramètres utilisateur incluent des opérations telles que la création d'utilisateurs, la définition de privilèges et la gestion des utilisateurs. Voici quelques opérations courantes de paramétrage des utilisateurs MySQL, notamment la création d'utilisateurs, la définition de privilèges, l'affichage et la suppression d'utilisateurs, etc.
Créer un utilisateur
Pour créer un nouvel utilisateur, vous pouvez utiliser la commande SQL suivante :
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
username: nom d'utilisateur.host: spécifie les hôtes à partir desquels l'utilisateur peut se connecter. Par exemple,localhostautorise uniquement les connexions locales,%autorise les connexions depuis n'importe quel hôte.password: le mot de passe de l'utilisateur.
Exemple
Accorder des privilèges
Après avoir créé un utilisateur, vous devez lui accorder des privilèges d'accès. Utilisez la commandeGRANTpour accorder des privilèges :
GRANT privileges ON database_name.* TO 'username'@'host';
privileges: les privilèges requis, tels queALL PRIVILEGES、SELECT、INSERT、UPDATE、DELETEetc.database_name.*: indique l'attribution de privilèges sur une base de données ou une table.database_name.*signifie accorder des privilèges sur toutes les tables de la base de données entière,database_name.table_namesignifie accorder des privilèges sur la table spécifiée.TO 'username'@'host': spécifie l'utilisateur et l'hôte auxquels les privilèges sont accordés.
Exemple
Rafraîchir les privilèges
Après avoir accordé ou révoqué des privilèges, vous devez rafraîchir les privilèges pour que les modifications prennent effet :
FLUSH PRIVILEGES;
Afficher les privilèges d'un utilisateur
Pour afficher les privilèges d'un utilisateur spécifique, vous pouvez utiliser la commande suivante :
SHOW GRANTS FOR 'username'@'host';
Exemple
Révoquer les privilèges
Pour révoquer les privilèges d'un utilisateur, utilisez la commande REVOKE :
REVOKE privileges ON database_name.* FROM 'username'@'host';
Exemple
Supprimer un utilisateur
Pour supprimer un utilisateur, vous pouvez utiliser la commande suivante :
DROP USER 'username'@'host';
Exemple
Modifier le mot de passe d'un utilisateur
Pour modifier le mot de passe d'un utilisateur, vous pouvez utiliser la commande ALTER USER :
ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
Exemple
Modifier l'hôte de l'utilisateur
Pour modifier l'hôte de l'utilisateur (c'est-à-dire quels hôtes sont autorisés à se connecter), vous pouvez d'abord supprimer l'utilisateur, puis recréer un nouvel utilisateur.
Exemple
DROP USER 'john'@'localhost';
-- Recréer l'utilisateur et spécifier le nouvel hôte
CREATE USER 'john'@'%' IDENTIFIED BY 'password123';
Spécifier les privilèges lors de la création d'un utilisateur
Lors de la création d'un utilisateur, vous pouvez également accorder des privilèges en même temps (MySQL 8.0.16 et supérieur) :
Exemple
GRANT ALL PRIVILEGES ON test_db.* TO 'john'@'localhost';
Configuration du fichier /etc/my.cnf
Le fichier /etc/my.cnf est le fichier de configuration MySQL utilisé pour configurer divers paramètres et options du serveur MySQL.
En général, vous n'avez pas besoin de modifier ce fichier de configuration. La configuration par défaut de ce fichier est la suivante :
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock [mysql.server] user=mysql basedir=/var/lib [safe_mysqld] err-log=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
Dans le fichier de configuration, vous pouvez spécifier le répertoire de stockage des différents fichiers journaux d'erreurs. Généralement, vous n'avez pas besoin de modifier ces configurations.
Le fichier /etc/my.cnf peut varier selon les systèmes et les versions de MySQL, mais inclut généralement les sections suivantes :
1. Paramètres de base
basedir: Le répertoire d'installation de base du serveur MySQL.datadir: L'emplacement où sont stockés les fichiers de données MySQL.socket: Chemin du fichier de socket Unix du serveur MySQL.pid-file: Chemin du fichier qui stocke l'identifiant de processus du serveur MySQL en cours d'exécution.port: Numéro de port sur lequel le serveur MySQL écoute, par défaut 3306.
2. Options du serveur
bind-address: Spécifie l'adresse IP sur laquelle le serveur MySQL écoute ; peut être une adresse IP ou un nom d'hôte.server-id: Dans la configuration de réplication, définit un identifiant unique pour chaque serveur MySQL.default-storage-engine: Le moteur de stockage par défaut, par exemple InnoDB ou MyISAM.max_connections: Le nombre maximal de connexions que le serveur peut maintenir simultanément.thread_cache_size: La taille du cache de threads, utilisée pour améliorer la vitesse de démarrage des nouvelles connexions.query_cache_size: La taille du cache de requêtes, utilisée pour améliorer l'efficacité des requêtes identiques.default-character-set: Le jeu de caractères par défaut.collation-server: L'interclassement par défaut du serveur.
3. Optimisation des performances
innodb_buffer_pool_size: La taille du pool de mémoire tampon du moteur de stockage InnoDB ; il s'agit de l'un des paramètres les plus importants pour l'optimisation des performances d'InnoDB.key_buffer_size: La taille du tampon de clés du moteur de stockage MyISAM.table_open_cache: Le nombre de caches de tables pouvant être ouverts simultanément.thread_concurrency: Le nombre de threads autorisés à s'exécuter simultanément.
4. Paramètres de sécurité
skip-networking: Empêche le serveur MySQL d'écouter les connexions réseau, n'autorisant que les connexions locales.skip-grant-tables: Démarre le serveur MySQL sans demander de mot de passe ; ceci est généralement utilisé pour récupérer un mot de passe root oublié, mais cela présente un risque de sécurité.auth_native_password=1: Active l'authentification par mot de passe native pour MySQL 5.7 et versions supérieures.
5. Paramètres de journalisation
log_error: Le chemin d'accès au fichier journal des erreurs.general_log: Journalise toutes les connexions client et toutes les requêtes.slow_query_log: Journalise les requêtes lentes dont le temps d'exécution dépasse un seuil spécifique.log_queries_not_using_indexes: Journalise les requêtes qui n'utilisent pas d'index.
6. Paramètres de réplication
master_hostetmaster_user: L'adresse du serveur maître et de l'utilisateur de réplication.master_password: Le mot de passe de l'utilisateur de réplication.master_log_fileetmaster_log_pos: Le fichier journal et la position utilisés pour la réplication.
Commandes pour gérer MySQL
Ci-dessous figurent les commandes couramment utilisées pour exploiter une base de données MySQL.
USE Nom de la base de données :
Sélectionnez la base de données MySQL sur laquelle travailler. Après avoir utilisé cette commande, toutes les commandes MySQL ne cibleront que cette base de données.mysql> use EXAMPLE; Database changed
SHOW DATABASES:
Liste les bases de données du système de gestion de bases de données MySQL.mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | EXAMPLE | | cdcol | | mysql | | onethink | | performance_schema | | phpmyadmin | | test | | wecenter | | wordpress | +--------------------+ 10 rows in set (0.02 sec)
SHOW TABLES:
Afficher toutes les tables de la base de données spécifiée. Avant d'utiliser cette commande, vous devez utiliser la commande use pour sélectionner la base de données sur laquelle opérer.mysql> use EXAMPLE; Database changed mysql> SHOW TABLES; +------------------+ | Tables_in_example | +------------------+ | employee_tbl | | example_tbl | | tcount_tbl | +------------------+ 3 rows in set (0.00 sec)
SHOW COLUMNS FROM Table de données:
Afficher les attributs, les types d'attributs, les informations sur la clé primaire, si elle est NULL, les valeurs par défaut et d'autres informations de la table de données.mysql> SHOW COLUMNS FROM example_tbl; +-----------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------------+--------------+------+-----+---------+-------+ | example_id | int(11) | NO | PRI | NULL | | | example_title | varchar(255) | YES | | NULL | | | example_author | varchar(255) | YES | | NULL | | | submission_date | date | YES | | NULL | | +-----------------+--------------+------+-----+---------+-------+ 4 rows in set (0.01 sec)
SHOW INDEX FROM Table de données:
Afficher les informations détaillées sur les index de la table de données, y compris PRIMARY KEY.mysql> SHOW INDEX FROM example_tbl; +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | example_tbl | 0 | PRIMARY | 1 | example_id | A | 2 | NULL | NULL | | BTREE | | | +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 1 row in set (0.00 sec)
SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern'] \G:
Cette commande affichera des informations de performance et de statistiques du système de gestion de base de données MySQL.mysql> SHOW TABLE STATUS FROM EXAMPLE; # 显示数据库 EXAMPLE 中所有表的信息 mysql> SHOW TABLE STATUS from EXAMPLE LIKE 'example%'; # 表名以example开头的表的信息 mysql> SHOW TABLE STATUS from EXAMPLE LIKE 'example%'\G; # 加上 \G,查询结果按列打印
Démonstration GIF :
