Cours la base d’administration de « mysql », tutoriel & guide de travaux pratiques en pdf.
Lancement de MySQL
$ /etc/rc.d/init.d/mysql -?
Utilisation : /etc/rc.d/init.d/mysql {start | stop | status | reload | restart} $ ps ax |grep mysql
1944 ? S 0:00 /bin/sh /usr/bin/mysqld_safe –datadir=/var/lib/mysql –
pid-file=/var/lib/mysql/localhost.pid –log –log-update
1977 ? S 0:00 /usr/sbin/mysqld –basedir=/ –datadir=/var/lib/mysql
–user=mysql –pid-file=/var/lib/mysql/localhost.pid –skip-locking
1978 ? S 0:00 /usr/sbin/mysqld –basedir=/ –datadir=/var/lib/mysql —
user=mysql –pid-file=/var/lib/mysql/localhost.pid –skip-locking
–log-update permet de loguer toutes les changements dans une base et de réaliser des backup incrémentaux. Toute l’histoire d’une base peut etre logguée dans /var/lib/mysql/localhost.log
Comment est lancé le serveur dans /etc/rc.d/init.d/mysql?
$ cat /etc/rc.d/init.d/mysql
gprintf « Starting MySQL Server »
$bindir/mysqld_safe –datadir=$datadir –pid-file=$pid_file 2>&1 | logger -t mysqld_safe & success
$ opt/mysql/bin/mysqld_safe –basedir=/opt/mysql/ — datadir=/opt/mysql/var/ –user=mysql –log –log_isam –log-update
Starting mysqld daemon with databases from /opt/mysql/var/
Pour connaître l’ensemble des options de mysqld
man mysqld
man mysqld_safe
Arrêt du serveur MySQL
$ mysqladmin -u root -p shutdown $ /etc/rc.d/init.d/mysql stop
$ killall mysqld
$ mysqld_pid=`cat /opt/mysql/var/localhost.pid` $ kill $mysqld_pid
Configuration de MySQL
Options du serveur mysqld :
Soit au lancement sur la ligne de commande Soit dans un fichier de conf « /etc/my.cnf »
mysqld lit ses options dans les sections [mysqld] et [server].
mysqld_safe lit ses options dans les sections [mysqld], [server], [mysqld_safe], et [safe_mysqld]
mysql.server lit ses options dans la partie [mysqld] et [mysql.server]
Pour voir les options que l’on peut placer dans ces sections :
mysqld –help
Options disponibles de my.cnf
[client]
host=localhost
user=user_mysql password=toto
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock skip-innodb
[mysql.server] user=mysql
basedir=/var/lib
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Connexion au serveur MySQL
mysql -u root -h localhost
La première fois pas de mot de passe pour se connecter !!
Mettre tout de suite un mot de passe pour l’utilisateur « root » de MySQL !
/opt/mysql/bin/mysqladmin -u root password ‘titi’
Quelques commandes intéressantes:
$ mysqladmin variables | mysql> show variables $ mysqladmin version
$ mysqladmin status | mysql> show status
Utiliser une base courante
Pour spécifier l’utilisation d’une base particulière :
1. Au lancement du client Mysql -u root -p CHOCOLATS
2.1 Sous l’interpreteur mysql Mysql> Use CHOCOLATS Mysql> select * from CLIENTS
2.2 En notation « pointée » en préfixant les tables par le nom de base [BASE.table] Mysql> select * from CHOCOLATS.CLIENTS;
Gestion des comptes utilisateurs
Gestion des Accès à la Base
Sécurité des accès
MySQL utilise sa propre base d’administration “/var/lib/mysql/mysql” pour gérer la sécurité des accès aux autres bases.
Seul le user “ root ” de MySQL doit avoir accès à cette base!
La base « mysql » utilise 5 tables pour décider « qui » a la permission de faire « quoi » sur quelle « base », à partir « de quelle machine »
La base « mysql » contient 5 tables d’administration
$ ls /var/lib/mysql/mysql/ user.frm , host.frm , db.frm columns_priv.frm func.frm tables_priv.frm
Sécurité des accès
La table « user » contient les informations de sécurité qui s’appliquent à tout le serveur.
La table « host » contient les machines qui ont le droit d’accéder au serveur
Les tables db, tables_priv et columns_priv contiennent les droits d’accès pour une base, une table ou une colonne.
L’ordre des contrôles d’accès est le suivant (cf doc. Texte word)
Les permissions MySQL
mysql> SHOW PRIVILEGES;
SELECT : droit d’effectuer des recherches avec “select »
INSERT : droit d’effectuer des insertions avec « insert »
UPDATE : droit d’effectuer des mises à jour avec « update »
DELETE : droit d’effectuer des destructions d’enregistrements dans des tables
INDEX : droit de créer ou détruire des index de tables
ALTER : droit de modifier la structure des tables avec « alter »
CREATE : droit de créer des bases ou des tables avec « create »
USAGE : droit de se connecter au serveur, sans rien faire d’autre
( utile uniquement pour changer le mot de passe de connexion )
LOCK : droit de verrouiller/déverrouiller des tables
Drop : droit de détruire des bases ou des tables
Grant : permet d’affecter des droits et permission à un utilisateur
References : (droit lié aux « foreign keys », inutilisé encore dans les version actuelle de mysql.. )
Privilèges globaux, ne s’appliquent pas à UNE base particulière
Reload : permission de relancer le serveur mysql et d’ecrire les tables sur disques.
Shutdown : droit d’arrêter le serveur “mysqld »
Process : droit de contrôler les processurs utilisateurs.
File : droit d’écrire ou lire dans des fichiers ascii avec les commandes « load data » et « into outfile »
Installation de MySQL
Lancement du serveur « mysqld »
Configuration et Paramétrage du serveur
Création d’une Base de Données
La gestion des droits sur les Bases
La base d’administration de « mysql »
Gestion des comptes utilisateurs
Ajout et suppression d’utilisateurs
Affectation des permissions pour des utilisateurs
Design et Création d’une Base
Création des tables
Les types de données
Manipulation des données dans les tables
Insertion, selection, modification, destruction
Instructions de transactions et de verrouillage
Administration, sauvegarde, réparation des Bases
Instructions d’optimisation des Bases
Utilisation d’une API PHP ou Perl
