MySQL est un système de gestion de base de données (SGDB).

Plus d'informations sur Wikipédia : http://fr.wikipedia.org/wiki/MySQL

Installation du serveur

On se place sur une Debian Lenny 5.0

  1. Installation du logiciel, la partie serveur et le client (qui permettra de faire des requêtes localement) :
    # aptitude install mysql-server mysql-client
  2. On donne au compte root du système Linux les codes d'accès au compte root de MySQL. Ainsi, lorsqu'on sera root sur la machine, on pourra faire des requêtes en tant que root sur MySQL très simplement. Ca aide :

    ; contenu du fichier /root/.my.cnf
    [client]
    user = root
    password = "MotDePasse"
  3. Un peu de protection :
    # chown root:root /root/.my.cnf
    # chmod 600 /root/.my.cnf
  4. Et un petit test :
    # mysqlshow 
    +--------------------+
    |     Databases      |
    +--------------------+
    | information_schema |
    | mysql              |
    +--------------------+
  5. C'est fini !

Personnalisation de la configuration

Toute configuration personnalisée devrait être placée dans /etc/mysql/conf.d/local.cnf.

Voici un exemple de configuration personnalisée qui pourrait être utilisé :

[mysqld]
language = /usr/share/mysql/french
bind-address = 127.0.0.1
log_slow_queries = /var/log/mysql/mysql-slow.log

[mysqldump]
quote-names

Note : un exemple plus complet, dédié au support Unicode, est disponible dans Etude/Unicode.

Ouvrir l'accès par TCP/IP

Pour rendre le serveur mysql disponible sur le réseau, une facon simple est de modifier le fichier /etc/mysql/my.cnf en changeant la ligne

bind-address           = 127.0.0.1

en

bind-address           = <adresse ip de la machine abritant le serveur>

Puis, ne pas oublier de préciser, lors de la configuration des droits d'accès à une base de données pour un utilisateur, si c'est pour user@localhost ou user@* (donnant ainsi la possibilité d'accéder à la bd à partir de n'importe quelle machine).

Je (nacer) ne sais pas si c'est la seule façon de faire, ni si c'est la méthode la plus sécurisée, mais c'est celle que j'utilise.

Gestion des logs

Ce qu'il ne faut pas faire

Le langage SQL

SQL fait partie des langages qu'un administrateur système doit connaître, sinon maîtriser. Si ce n'est pas votre cas, voici quelques bonnes pages pour apprendre ce qu'il est nécessaire de savoir :

Exemples de manipulation avec MySQL

  1. Créer une base

$ mysql -u <nom utilisateur> -h <nom d'hôte> -p
$ mysql> create database <nom de la bd>;
  1. Créer une table dans la base
  2. Créer un utilisateur MySQL associé à une base

Deux facons (au moins) de procéder:

$ create user <nom utilisateur> identified by <mot de passe>

$ grant all on <nom de la bd>.* to <nom utilisateur>@'localhost' identified by <mot de passe>

Pour voir la liste des bases de données:

$ mysql> show databases;

Pour utiliser une base de données en particulier:

$ mysql> use <nom de la bd>;

Pour voir la liste des tables de la bd:

$ mysql> show tables;

Pour voir la structure d'une table en particulier:

$ mysql> describe <nom de la table>;
  1. Ajouter et modifier des données avec le client mysql

Récupération de bases MySQL à partir d'un disque endommagé (/var/lib/mysql accessible néammoins)

En principe, ce genre de situation ne doit pas arriver si les sauvegardes sont bien faites. Mais au cas où ...

  1. Disposer d'un serveur mysql fonctionnel et s'assurer qu'il s'agit d'un serveur de la même version que celui en panne. Pour voir la version, regarder dans le fichier "/var/lib/mysql/mysql_upgrade_info".
  2. Arrêter le serveur fonctionnel
  3. Copier le contenu de /var/lib/mysql du disque défectueusement vers le dossier correspondant sur le serveur fonctionnel, à l'exception du dossier mysql.
  4. S'assurer que les sous dossiers de /var/lib/mysql appartiennent tous à l'utilisateur "mysql"
  5. ajout : je crois qu'il existe un outil qui permet de "checker" l'état des bases de données avant de relancer le serveur... ? à confirmer svp -- ThomasNoël 2008-10-21 08:57:33

    • Il s'appelle mysqlcheck. Il est lancé par le script /etc/mysql/debian-start à chaque (re)démarrage.

  6. Relancer le serveur
  7. Vérifier que les bd, tables et données sont bien lisibles.

Sauvegarde et restauration de bases MySQL

MySQL (dernière édition le 2010-09-13 09:32:04 par WillyManga)