MySQL
Prendre en main MySQL
par Jiel
Introduction
Cette documentation a pour but de rapidement pouvoir utiliser et maîtriser quelques commande de base de MySQL. Elle suppose que vous avez déjà quelques connaissances basiques en base de données. Pour rappel, un système de gestion de base de données (SGBD) permet de manipuler et d'administrer des bases de données identifiées par un nom. Chaque base est composée de tables qui contiennent des données.
MySQL est un SGBD sous double licence. La licence varie en fonction de l'utilisation qui en est faite : dans un produit libre, la licence est la GPL et dans un produit propriétaire, c'est une licence propriétaire et payante qui s'applique.
La société MySQL AB qui éditait MySQL a été acheté en 2008 par Sun Microsystems pour un milliard de dollars, et Sun Microsystems a été acquis par Oracle Corporation en 2009. MySQL est donc désormais la propriété d'Oracle.
Installation
Installer le paquet mysql-server
(Ubuntu) ou mysql
(Mandriva) - le nom est similaire sur une autre distrib' - selon suivant la procédure habituelle de votre distribution.
On notera que par défaut, MySQL stocke les bases de données dans le répertoire /var/lib/mysql.
Lancement
Les commandes suivantes sont à lancer en root ou bien en les précédant de sudo (comme ci-dessous).
Démarrez MySQL avec la commande suivante (le service peut aussi s'appeler mysqld avec un « d » final sous certaines distributions):
sudo /etc/init.d/mysql start
Vous pouvez vérifier s'il est bien lancé (status: started) en consultant son statut :
sudo /etc/init.d/mysql status
Arrêtez MySQL avec la commande :
sudo /etc/init.d/mysql stop
Connexion
Si vous n'avez pas défini de mot de passe pour le compte administrateur (root) de la base MySQL, connectez-vous par la commande :
mysql -u root
Si un mot de passe a été défini pour le compte administrateur, tapez :
mysql -u root -p
Vous êtes alors connecté à la ligne de commande MySQL où vous pourrez taper vos requêtes : > mysql
.
Nous verrons par la suite comment créer d'autres comptes et définir un mot de passe (utile pour en mettre un pour le compte administrateur).
Requêtes MySQL
Les requêtes sont des commandes en langage SQL : à ce titre, elles contiennent des mots clefs du langage (l'usage veut qu'on les mette en majuscules), des paramètres et elles se terminent par un point-virgule.
Ci-dessous ne figurent que des requêtes basiques.
Manipuler les utilisateurs
Créer un utilisateur dans la base locale (localhost) :
CREATE user "nom_utilisateur"@"localhost";
Attribuer un mot de passe à un utilisateur :
SET password FOR "nom_utilisateur"@"localhost" = password("mot_de_passe");
Modifier un mot de passe d'un utilisateur :
UPDATE user SET password = password("nouveau_mot_de_passe") where user = "nom_utilisateur" and host="localhost";
Supprimer un utilisateur :
DROP user "nom_utilisateur"@"localhost";
Donner tous les droits à un utilisateur sur une base de données :
GRANT ALL ON nom_base.* TO "nom_utilisateur"@"localhost";
Enlever tous les droits à un utilisateur sur une base de données :
REVOKE ALL privileges ON nom_base.* FROM "nom_utilisateur"@"localhost";
Manipuler les bases de données
Lister les bases présentes :
SHOW DATABASES;
Se connecter à une base :
USE nom_base;
Créer une base :
CREATE DATABASE nom_base;
Supprimer une base :
DROP DATABASE nom_de_la_base;
Manipuler les tables
Lister les tables de la base active :
SHOW TABLES;
Afficher la structure d'une table :
DESCRIBE nom_table;
Créer une table :
CREATE TABLE nom_table ( listes des composants avec leur type ) ;
exemple :
CREATE TABLE personnes (
id tinyint(4) unsigned NOT NULL auto_increment, nom varchar(80) NOT NULL, prenom varchar(80) NOT NULL, email varchar(32), PRIMARY KEY (id)
);
Supprimer une table :
DROP table nom_table;
Renommer une table :
ALTER TABLE nom_table RENAME AS nouveau_nom_table;
Export et import d'une base
Pour exporter une base dans un fichier, tapez la commande dans un shell :
mysqldump -u root -p nom_base > nom_base_sauvegarde.sql
Pour importer une base à partir d'un fichier :
mysql -u root -p nom_base < nom_base_sauvegarde.sql
Changer le mot de passe root quand on l'a oublié
Si on oublie le mot de passe root de MySQL, pas de panique ! Voici comment le modifier.
Commencez par arrêter le SGBD par la commande : /etc/init.d/mysql stop
(le service peut s'appeler mysqld avec un « d » final sous certaines distributions).
Redémarrez le avec les options -skip-grant-tables pour que MySQL zappe les permissions et --skip-networking pour qu'il ne soit accessible que localement. Faites donc : /etc/init.d/mysql --skip-grant-tables --skip-networking &
Loguez vous via la commande mysql mysql
puis tapez la requête de modification de mot de passe : UPDATE user SET password = password("nouveau_mot_de_passe") where user = "root" and host="localhost";
Il ne vous reste qu'à redémarrer MySQL : /etc/init.d/mysql restart
Liens
Manuel de référence de MySQL 5.0 : http://dev.mysql.com/doc/refman/5.0/fr/index.html
Voir aussi sur Léa-Linux :
- Installation de LAMP : GNU/Linux, Apache, MySQL, PHP
- Installation d'un serveur LAMP en mode texte
- Protection d'un serveur LAMP
- ProFTPD, MySQL et Quota
- Postfix, Courier Imap & Pop, MySQL et Quota avec filtre AntiSpam et antivirus
@ Retour à la rubrique Réseau et sécurité
Copyright
© 2010 Jiel Beaumadier
Vous avez l'autorisation de copier, distribuer et/ou modifier ce document suivant les termes de la GNU Free Documentation License, Version 1.2 ou n'importe quelle version ultérieure publiée par la Free Software Foundation; sans section invariante, sans page de garde, sans entête et sans page finale. |