|
|
TP Administration de MYSQL |
ps ax | grep mysql --> root a lancé le processus initial /usr/bin/mysqld_safe --> puis a transmis à syslog, la gestion des logs --> ensuite x processus serveur mysqld ont été lancés, sous la propriété de l'utilisateur mysql (un utilisateur standard, par souci de sécurité)
date heure hote mysqld_safe: starting mysqld daemon with databases from /var/lib/mysql/
mysql. IL s'agit de la base de données interne du serveur, elle est destinée à gérer les utilisateurs, l'authentification et leurs droits d'accès (appelés privilèges).
/var/lib/mysql qui porte le nom de la base.
mysql exécute un utilitaire client, qui permet de dialoguer avec le serveur MYSQLmysql Welcome to the MySQL monitor. Commands ends with ; or \g Your Mysql connection id is ... tape help; ou \h for help mysql>On peut aussi se connecter à distance à travers une session ssh
mysql mysql> SHOW databases; mysql> USE test; mysql> SHOW tables; mysql> USE mysql; mysql> SHOW tables; mysql> SHOW columns FROM user; mysql> SELECT host, user, password FROM user; mysql>quit
root@localhost (homonyme du superviseur Linux, mais
tout-à-fait distinct)
mysqladmin -u root password fcticeLe mot de passe de l'administrateur "
root" de mysql est maintenant fctice.
mysql --> access denied for user root@localhost
mysql -u root -p Enter password : fctice (il n'apparait pas à l'écran) Welcome to the MySQL monitor mysql>USE mysql mysql>SELECT host, user, password FROM user; mysql>quit
mysql -u root -p mysql mysql> DELETE FROM user WHERE user=''; mysql> DELETE FROM user WHERE password=''; mysql> SELECT host, user, password FROM user;
mysql -h ip -u root -p Password .. Refus !! lisez bien le motif du refus, il explique pourquoi ..
mysql -u root -p Password .. mysql>GRANT all privileges ON *.* TO 'root'@'ip' IDENTIFIED BY 'fctice'
mysql -h ip -u root -p Password .. mysql>CREATE DATABASE essais ;
mysql -u root -p Password .. mysql>GRANT all privileges ON *.* TO 'root'@'ip' IDENTIFIED BY 'fctice'Tester ensuite une connexion cliente quelconque. Est-ce possible ?
En mode console mysql -u root -p cdi < /chemin/cdi.sql Sous Phpmyadmin sélectionner la base cdi "Emplacement du fichier texte" chercher le fichier cdi.sql sur le système de fichier local Exécuter Bien comparer ce fichier à la structure et aux contenus des tables.
En mode console mysqldump - u root -p cdi > /chemin/cdi1.sql --> donner le mot de passe Sous Phpmyadmin Comme root, sélectionner la base cdi "Afficher le schéma de la base de données" Structure et données Transmettre Exécuter choix du répertoire, nom du fichier : cdi1.sql Comparer avec le fichier d'origine cdi.sql
Avec Phpmyadmin, sélectionner la base test
"Créer une nouvelle table sur la base test" :
Nom : glossaire Champs : 3
Exécuter
A l'aide du formulaire proposé, définir sa structure
Champ Type Null primaire
---------- ------------- ------ --------
sigle varchar(12) not null x
descriptif varchar(50) not null
type char(1) not null
Sauvegarder --> La nouvelle table glossaire est alors créée dans la base test ( ou dans votre base webmestre)
CREATE TABLE glossaire ( sigle VARCHAR(12) NOT NULL, descriptif VARCHAR(50) default NOT NULL, type VARCHAR(1) default NOT NULL, PRIMARY KEY (sigle) );
Emplacement du fichier texte : glossaire.txt Champs terminée par ; Supprimer les autres choix ExécuterObserver les 283 enregistrements importés et supprimer le premier.
Base mysql; table user; action "insérer" - host localhost localhost - user public admin - mdp ..... admin -- avec fonction=PASSWORD Laisser tous les droits (globaux) à No Ne pas oublir de relancer le serveurSe connecter sous le compte admin/admin en mode console ou avec phpmyadmin; admin peut-il alors accéder à la gestion des utilisateurs ? Conclusion.
mysql> GRANT select,insert,update,delete ON cdi.* TO 'admin'@'%' IDENTIFIED BY "admin";
Comptes | droits à attribuer
----------------|-------------------------------------------------------------------
admin/admin | - droits select,insert,update,delete, au niveau de la base CDI
----------------|-------------------------------------------------------------------
public/... | - accès à la base cdi, sans aucun privilège global
| - droit SELECT (exclusivement) sur les tables inscrits, documents
| - droit INSERT sur la table demande
----------------|-------------------------------------------------------------------
Relancer le serveur et bien vérifier l'application de ces droits, comme admin et comme public.phpMyAdmin est un ensemble de scripts PHP permettant de gérer complètement ses bases de données
par le truchement d'une interface WEB distante.
config.inc.php.
Documentation.html accessible sur la page d'accueil)$cfgServers[$i]['auth_type'] = 'http' $cfgServers[$i]['user'] = 'root' $cfgServers[$i]['password'] = ''
mysql> USE essais mysql> CREATE TABLE carnet (num int, nom varchar(30), email varchar(30) );
| carnet.MYD | contient les données (vide à la création) |
| carnet.MYI | contient la descripton des index |
| carnet.frm | décrit la structure de la table |
| Attribut | Valeur | Signification |
|---|---|---|
| Host | La machine de laquelle on tente la connexion (host=localhost par défaut) | |
| User | nom de connexion de l'utilisateur | |
| Password | mot de passe mysql de l'utilisateur | |
| Select_priv | Y/N | droit de sélection |
| Insert_priv | Y/N | droit d'insertion |
| Update_priv | Y/N | droit de modification |
| Delete_priv | Y/N | droit de suppression |
| Index_priv | Y/N | Indexation |
| Alter_priv | Y/N | droit de modification (table, champ) |
| Create_priv | Y/N | droit de création |
| Drop_priv | Y/N | Suppression |
| Grant_priv | Y/N | Permission |
| Reload_priv | Y/N | Relancer mysql |
| Shutdown_priv | Y/N | Arreter mysql |
| Process_priv | Y/N | Processus |
| File_priv | Y/N | Lecture et écriture de fichiers (import/export) |
| Attribut | Valeur | Signification |
|---|---|---|
| Host | machine de laquelle on tente la connexion | |
| Db | Base de données | |
| User | Utilisateur | |
| Select_priv | Y/N | droit select, de passer des commandes sql SELECT |
| Insert_priv | Y/N | droit insert, de passer des commandes INSERT |
| Update_priv | Y/N | droit update, de mise à jour des enregistrements d'une table |
| Delete_priv | Y/N | droit delete, d'effacement des enregistrements d'une table |
| Index_priv | Y/N | droit d'utiliser INDEX pour créer ou supprimer des index |
| Alter_priv | Y/N | droit alter, pour utiliser ALTER TABLE pour modifier la structure d'une table (ou la renommer) |
| Create_priv | Y/N | droit create, d'utiliser CREATE pour créer de nouvelles bases ou tables |
| Drop_priv | Y/N | droit drop, d'utiliser DROP pour supprimer une base existante (ou une table) |
| Grant_priv | Y/N | droit grant, attribue à d'autres utilisateurs Mysql les permissions que l'on possède |
mysqladmin -p status Enter password : Uptime: 4153 Treads: 1 Questions 76 ......Uptime donne le nombre de secondes écoulées depuis le lancement du serveur mysqld, Threads le nombre de processus fils, c'est-à-dire à peu près le nombre de connexions ouvertes par des clients
mysqladmin -p processlist Enter password : Id User Host db Command Time State Info
mkdir /home/mysql.svg mysqldump -p essais > /home/mysql.svg/essais.sql less essais.sql
mysql -p essais < /home/mysql.svg/essais.sql
mysqldump -u admin -p -d essais > ~/essais.sql less /home/admin/essais.sql
mysqldump -p essais -T /home/mysql.svg cd /home/mysql.svg ll
myisamchk -d /var/lib/mysql/cdi/eleves ISAM files: eleves Data records : 150 Deteted blocks: 0 .........
myisamchk -r cdi.eleves
mysql
mysql> use mysql
mysql> update user set password=PASSWORD("nouveau_mot_de_passe") where user='root';
mysql> quit