18/11/2024

BDD

Base de données

Personnaliser le terminal MySQL

I. Présentation Dans ce tutoriel, nous allons apprendre à personnaliser le prompt (terminal) présent sur le serveur MySQL de base lorsque nous l’utilisation en CLI (Ligne de commande). Le terminal de base CLI MySQL est en effet assez rudimentaire, il ne fournis aucune information mis à part le fait que nous sommes bien connecté au serveur MySQL : Nous pourrions en effet vouloir avoir des informations supplémentaires comme la date, l’utilisateur avec lequel nous sommes connecté, le serveur, etc. II. Procédure pour un changement temporaire Il est en effet possible sur ce terminal MySQL d’afficher des informations beaucoup plus intéressantes, on peut par exemple afficher le nom de l’utilisateur connecté et le nom du serveur comme suivant : Lorsque nous sommes connecté à une session CLI MySQL, il faut pour avoir ce terminal saisir la commande suivante : \R \u@\h > La déclaration du changement d’apparence du prompt se fait avec « \R », les valeurs qui suivent sont soit des caractères

Lire cet article
Base de données

Changer l’emplacement des bases de données MySQL

I. Présentation Par défaut, les bases de données (en tant que fichier) sont stockées dans « /var/lib/mysql/ » sous Linux. Pour des questions d’organisation, de sécurité ou de place, il est peut être intéressant de changer l’emplacement de ces bases de données vers un autre dossier/ chemin. Nous allons voir dans ce tutoriel que cela est possible directement dans la configuration de MySQL. II. Repérer où sont les bases de données Dans un premier temps, nous allons voir où sont situées nos bases de données selon la configuration de notre serveur MySQL. On se rend pour cela dans le fichier « /etc/mysql/my.cnf » : On trouvera alors le champ « datadir » qui pointe par défaut vers « /var/lib/mysql ». Afin de vérifier cette information, nous allons aller dans ce dossier pour voir les bases de données présentes et surtout leurs permissions : ls -al /var/lib/mysql Nous aurons alors un résultat de ce type : Ici, une base de données est représentées par un dossier (comme « mysql » ou

Lire cet article
Base de données

Réplication en temps réel Master/Slave MySQL

I. Présentation L’importance des serveurs de base de données et des bases de données elles même dans un système d’information est capital à son bon fonctionnement tant au niveau applicatif qu’au niveau des lectures par les serveurs web. C’est pourquoi il est important, dans une optique de sécurité et de disponibilité de l’information, d’avoir un processus à la fois de réplication des informations en temps réel mais aussi de tolérance de panne. Plus précisément, si un serveur dit « Master » tombe, un autre serveur « Slave » doit prendre le relais de manière immédiate et doit aussi avoir la dernière version des informations. Dans ce tutoriel, nous allons apprendre à mettre en place une réplication des bases de données en temps réel entre un serveur dit « Master » qui va recevoir les processus d’écriture et de lecture et un serveur « Slave » qui se chargera de se mettre à jour selon les modifications faites sur le « Master » afin qu’il dispose des dernières versions des informations

Lire cet article
Base de données

Conception d’un modèle physique des données

I. Présentation Le modèle physique des données (MPD) d’une base de données permet d’avoir une représentation graphique de la structure d’une base de données et ainsi de mieux comprendre les relations entre les différents tables. Il permet d’avoir un point de vue global sur l’ensemble de la base de données. Nous utiliserons la base de données suivantes pour créer notre MPD : T_Batiments(Bat_Num,Bat_Nom); T_Fabricants(F_Num,F_Nom); T_Switchs(Sw_Num,#Sw_NumFabr,#Sw_NumBat,Sw_Modele,Sw_NbPortsMb,Sw_NbPortsGb); Cette base de données a pour but de répertorier les switchs des fabricants pour ensuite les implémenter dans différents bâtiments. II. Comment créer un MPD  ? Dans un MPD, on crée les tables dont on met le nom dans l’en-tête, ensuite à l’intérieur de ces tables on répertorie l’ensemble des champs qu’elles contiennent. Dans un second temps, il faut souligner les champs qui sont des clés primaires et mettre un “#” devant les champs qui sont des clés étrangères. Pour les clés étrangères ce n’est pas tout, il faut montrer, à l’aide d’une flèche vers

Lire cet article
Base de données

Erreur MysQL : Table is marked as crashed and should be repaired

I. Présentation Il peut arriver que vous ayez à faire face à l’erreur « Table is marked as crashed and should be repaired » lors de la manipulation des tables MySQL. II. Pourquoi cette erreur Cette erreur et avertissement peut avoir plusieurs sources. Elle indique la table en question est corrompue et qu’elle doit être réparée. Cela peut être dû à un problème d’espace disque sur la partition où se situe la base de données, à un problème d’extinction de la base de données lors d’une lecture ou d’une écriture d’informations ou alors plus couramment à un problème physique sur le support de stockage, une extinction non prévue, etc .. III. Réparer une table corrompue Nous pouvons le faire grâce à PhpmyAdmin dans un premier temps. Il faut se rendre dans le PhpMyAdmin pour réparer la table (l’opération est aussi faisable en ligne de commande sur le serveur MySQL). On doit ensuite se loguer puis se rendre dans la base de données

Lire cet article
Base de données

Voir les droits utilisateur dans MySQL en ligne de commande 

I. Présentation Dans ce tutoriel, nous allons voir comment afficher les droits et permissions d’un utilisateur MySQL en ligne de commande. Le plus souvent, on utilise PhpMyAdmin pour gérer les droits utilisateurs mais il est aussi facile et rapide de le faire en ligne de commande (CLI) Nous allons ici utiliser la commande « show grants » qui sert à afficher les droits d’un utilisateur sur les bases d’un serveur. Il est important de savoir que pour utiliser cette commande, le minimum des droits requis est celui de faire un « select » sur la base de données « mysql » du serveur MySQL. II. Voir les utilisateurs disponibles Nous allons, dans un premier temps, regarder quels sont les utilisateurs présents sur notre serveur après s’être connecté en « root » en ligne de commande : select user,host from mysql.user; Nous aurons alors la liste des utilisateurs ainsi que les hôtes depuis lesquels ils peuvent se connecter. III. Voir nos bases de données Nous allons maintenant chercher à

Lire cet article
Base de données

Changer le nom de l’utilisateur root MySQL

I. Présentation Par défaut, MySQL créé, lors de son installation, un super-utilisateur nommé « root ». Cet utilisateur a tous les droits sur toutes les bases de données du serveur. Si un utilisateur doit être ciblé lors d’une attaque sur un service MySQL, c’est bien celui-ci. En effet, si on arrive à avoir les identifiants de cet utilisateur (login et mot de passe), on aura un accès total à toutes les bases de données. Dés le départ, un attaquant peut démarrer une attaque avec 50% des informations requises : le nom de l’utilisateur (« root »). Pour rendre plus difficile et plus lente la tâche d’un attaquant, nous allons modifier le nom de cet utilisateur pour que l’utilisateur « root » n’existe plus. Ainsi, en plus de devoir trouver un mot de passe, l’attaquant devra commencer par trouver l’identifiant du super-utilisateur de notre service MySQL. II. Voir les utilisateurs existants Nous allons commencer par vérifier quel utilisateur est présent sur notre service MySQL. On se connecte

Lire cet article
Base de données

Changer de mot de passe MySQL

I. Présentation Dans ce tutoriel, nous allons apprendre à changer les mots de passes des utilisateurs et de root dans MySQL. Il existe plusieurs façons de faire avec plusieurs outils et nous allons ici étudier les plus courantes. On peut par exemple utiliser la commande « mysqladmin » qui est spécialement prévue pour ce genre de modification, nous pouvons également utiliser une commande « courante » de changement de valeurs dans une table (« UPDATE ») ou encore s’aider d’outils comme « PhpMyAdmin » qui fournis une interface web pour la gestion de nos bases de données. Il faut savoir que, comme toutes les informations concernant MySQL et ses bases de données, les utilisateurs, leurs droits et leurs mots de passe sont stockés dans la base de données « mysql » et plus précisément dans la table « user ». La seule chose que nous avons à faire est donc de modifier la valeur du champ « password » de cette table. II. Changer le mot de passe root avec la commande « mysqladmin » Une

Lire cet article
Base de données

Utilisation d’un fichier sécurisé pour l’authentification MySQL

I. Présentation Lors de la mise en place de scripts utilisant MySQL ou de l’utilisation des commandes MySQL en CLI, il peut être gênant d’avoir à saisir le mot de passe directement dans le script ou la commande qui est exécuté . Nous allons donc chercher à le stocker dans un fichier et à aller le lire par une option supplémentaire dans les commandes. Cela peut nous être pratique dans un soucis de sécurité d’une part, mais également dans un soucis de facilité d’utilisation. II. Fonctionnement On passe pour cela par un fichier déjà existant qui est « /etc/mysql/debian.cnf ». Ce fichier est déjà utilisé par le système. C’est votre machine qui, par le compte « debian-sys-maint » va faire des mises à jours sur la base de données ou des checks système. Le mot de passe associé à cet utilisateur est automatiquement créé à l’installation de MySQL. Il ne faut donc pas y toucher. Nous allons simplement nous contenter de copier ce fichier

Lire cet article
Base de données

Importer un fichier .sql en ligne de commande

I. Présentation Dans ce tutoriel, nous allons apprendre à importer des bases de données au format « .sql » en ligne de commande. Bien souvent, la réimportation des bases de données à partir de fichier « .sql » passe par l’utilisation de PhpMyAdmin. Mais il peut aussi être utile de savoir le faire en ligne de commande pour automatiser la tâche par exemple. On doit pour cela avoir un fichier « .sql » à disposition ainsi qu’un serveur MySQL opérationnel. On aura donc un fichier que nous nommerons ici « db.sql » qui contiendra des commandes MySQL (DROP, CREATE, INSERT, …). Dans notre tutoriel, on considérera qu’il est stocké dans « /home/neaj/mysql/ » L’intérêt de mettre ces commandes dans un fichier « .sql » est que cela nous permet de toutes les exécuter en une seule fois. II. Les lignes de commandes Il existe plusieurs façon de faire mais dans tous les cas on utilise la commande « mysql ». # On peut commencer par se connecter avec notre utilisateur mysql -u user -p

Lire cet article
Base de donnéesBash

Script – Sauvegarde des bases de données sous Linux

I.  Présentation Afin d’assurer une tolérance aux pannes et une sauvegarde des informations importantes, une sauvegarde des bases de données Mysql peut être faite avec un script. Il est en effet intéressant de pouvoir automatiser la sauvegarde des bases de données d’un serveur, car elles contiennent souvent des informations importantes et vitales dans une entreprise. Ce backup sera effectué par un utilisateur « backup » qui sauvegardera régulièrement et automatiquement l’ensemble des bases de données du serveur. II. Création de l’utilisateur de backup Il faut tout d’abord créer un utilisateur qui aura uniquement les droits de lecture sur l’ensemble des bases de données. Les opérations seront lancées à partir d’un script, il serait donc dangereux de les lancer avec un utilisateur ayant des droits de modification, de création ou de suppression sur les bases de données.On se connecte au serveur de base de données : mysql -u root -p On crée l’utilisateur ‘backup’@’localhost’. Il est important de préciser que backup

Lire cet article