PLAN
- PLAN
- PRESENTATION
- INSTALLATION
- CONNEXION AU SERVEUR
- GESTION DES UTILISATEUR
- DROIT ACCÈS AU BASE DE DONNEES
- GESTION DES BASES ET DES ENREGISTREMENTS
- INFORMATION SUR LE SERVEUR
- MAINTENANCE
- LIENS
PRESENTATION
Mysql est un système de gestion de base de données(SGBD) des plus
performant à l'heure actuelle.
Dans cet article, nous
essayerons de vous donner les bases de l'administration du
serveur et des bases de données, pour que vous puissiez
facilement gérer celle de votre site internet sans outil
extérieur.
INSTALLATION
L'installation de mysql s'effectue depuis les paquetages dont la liste est la suivante :
- mysql
- mysql-client
- mysql-common
L'installation de base ne nécessite pas de configuration particulière, une fois installée, vous disposez d'un serveur, mais aussi de client pour pouvoir le gérer.
CONNECTION AU SERVEUR
La connexion au serveur s'effectue avec la commande suivante
:
« mysql -h nom hôte -u utilisateur
-pmot de passe »
L'option -h n'est à fournir que si vous vous connectez à un hôte
distant. Tandis que l'option -p doit être utilisé seule ou avec
le mot de passe directement collé à l'option. Si ce n'est pas le
cas l'interpréteur prendra le mot de passe pour la base de
données à laquelle vous voulez vous connecter.
Le compte par
défaut pour l'administration est le compte « root »
vous pouvez l'utiliser pour vous connecter à la base mysql avec
la commande suivante :
« mysql -u root -p mysql »
Le mot de passe actuellement inexistant vous sera tout de même demandé.
GESTION DES UTILISATEURS
2 utilisateurs ont été créés par défaut ; le super-utilisateur « root »
qui possède tous les droits sur les bases de données et
l'utilisateur « anonyme » qui possède des droits très
réduits.
Par défaut le compte « root » n'a pas de
mot de passe, remédiez au plus vite à cela par la commande :
« mysqladmin
-u root password 'secret' »
La gestion des utilisateurs comme toute autres taches
d'administrations nécessite l'accès à la base avec le compte
root, chose que vous pouvez maintenant faire directement avec le
login et le mot de passe.
« mysql -u root
-p secret »
Une fois connecté, vous pouvez gérer les utilisateurs.
Premièrement,
il vous est conseillé de supprimer le compte « anonyme »,
effectuez la suppression du compte via la commande générique
suivante :
« mysql> DELETE FROM user WHERE user=''; »
Vous pouvez aussi ajouter un compte :
« mysql> INSERT
INTO user (host, user, password) VALUES('localhost', 'bob',
password('password')); »
Mettre a jour une info sur le compte, par exemple le mot de passe
:
« mysql> UPDATE user SET password=password('mdp')
WHERE user='bob'; »
A chaque opération sur la base utilisateur, pensez à recharger
les droits avec la commande :
« mysql> FLUSH
PRIVILEGES; »
Vous pouvez maintenant effectuer les principales opérations sur les comptes utilisateurs.
DROIT ACCÈS AUX BASES DE DONNEES
Une fois les utilisateurs créés, il faut leur accorder des droits
d'accès sur les différentes bases de données.
Ils sont inclus
dans les 5 tables de la base de données mysql, dont la gestion
est effectué par « root ».
Ces droits d'accès
doivent rester en état et seul « root » doit pouvoir
les modifier.
Pour gérer ces droits vous disposer de 2
commandes GRANT et REVOKE.
Exemple :
Donner tous les droits a l'utilisateur bob sur la base test :
« GRANT
ALL PRIVILEGES ON test.* TO bob@localhost IDENTIFIED BY 'mdp'; »
Supprimer tous les droits de bob sur test :
« REVOKE ALL
PRIVILEGES ON test.* FROM bob@localhost; »
À chaque opération sur les droits d'accès, pensez à recharger
les droits avec la commande :
« mysql> FLUSH
PRIVILEGES; »
GESTION DES BASES ET DES ENREGISTREMENT
Lors de l'installation 2 bases sont créées ; la base mysql
destinée à gérer les utilisateurs, leurs droits accès, etc... et la
base test qui comme son nom l'indique est destinée aux
tests.
Nous pouvons bien entendu créer une table
supplémentaire :
« mysql> CREATE DATABASE test2; »
La
supprimer :
« mysql> DROP DATABASE
test2; »
Nous pouvons afficher la liste des bases
restante :
« mysql> SHOW DATABASES; »
Créer
des tables dans la base choisie :
« mysql> USE test; »
« mysql>
CREATE TABLE note (num int, texte varchar(250));
Supprimer
une table
« mysql> DROP TABLE
nomTable; »
Afficher les tables :
« mysql>
SHOW TABLES; »
Insérer un enregistrement :
« mysql>
INSERT INTO note (num, texte) VALUES (1, 'acheter pomme'); »
le
mettre à jour :
« mysql> UPDATE note SET
texte='acheter pomme et orange' WHERE num=1; »
le
lire :
« mysql> SELECT texte FROM note WHERE num=1; »
le
supprimer
« mysql> DELETE FROM note WHERE num=1; »
Afficher
la structure de la table :
« mysql> DESCRIBE note; »
Renommer
la table :
« mysql> ALTER TABLE note RENAME AS
postit; »
la vider de ses enregistrements :
« mysql>
TRUNCATE TABLE postit; »
INFORMATION SUR LE SERVEUR
L'utilitaire « mysqladmin » est affecté à la gestion
interne du serveur, des bases et des utilisateurs.
Il est
fort utile pour connaître diverses informations sur le serveur.
Pour connaître la charge du serveur utilisez par exemple la
commande :
« mysqladmin -p status »
Pour afficher le détail des connexions clientes :
« mysqladmin
-p processlist »
Accéder aux informations de connexion au serveur :
« mysql>
\s; »
Pour connaître les informations sur l'encodage :
« mysql>
SHOW VARIABLES LIKE 'char%'; »
MAINTENANCE
- sauvegarde des bases :
sauvegarde de toutes les bases dans 1 fichier sql :
« mysqldump
-u root -psecret --default-character-set=latin1 -f
--all-databases | bzip2 > /data/mysql/mysql-all-base.sql.bz2 »
sauvegarde du contenu de la base test dans le fichier test.sql
:
« mysqldump -p test > /data/mysql/test.sql »
sauvegarde d'une table :
« mysqldump -p test note >
/data/mysql/test-note.sql »
- restaurer une base
Pour restaurer une base, il suffit de partir du fichier de
sauvegarde et de le réinjecter dans la base existante :
« mysql
-p -D test < /data/mysql/test.sql »
- Verifier et réparer des bases :
Pour une vérification et au besoin réparation de toutes vos bases
:
« mysqlcheck -u root -proot –all-databases
–auto-repair
Vous pouvez aussi utiliser l'utilitaire « myisamchk »,
qui est le plus souvent utilisé pour retrouver l'intégrité d'une
table endommagée.
Il doit être lancé pendant que le serveur
est arrêté et le chemin de la table doit y être indiqué.
Exemple :
myisamchk -d /var/lib/mysql/test/note
Vous pouvez utiliser l'option -r pour défragmenter le fichier, ce
qui est utile dans le cas où il y a de nombreux « Deleted
blocks »
myisamchk -r /var/lib/mysql/test/note
D'autres opérations de maintenances peuvent bien entendu être effectuées nous vous renvoyons à la documentation officielle pour plus d'informations.
LIENS
http://www.basicconfig.com/linuxservers/setup_configure_mysql_slackware
http://www.crdp-strasbourg.fr/freesofts/auto_intranet/ai35.htm
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch34_:_Basic_MySQL_Configuration