MySQL

De Lea Linux
Aller à la navigation Aller à la recherche


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 :



@ Retour à la rubrique Administration système

@ Retour à la rubrique Développement

Copyright

© 2010 Jiel Beaumadier

Tête de GNU 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.