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 }}} 1. 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" }}} 1. Un peu de protection : {{{ # chown root:root /root/.my.cnf # chmod 600 /root/.my.cnf }}} 1. Et un petit test : {{{ # mysqlshow +--------------------+ | Databases | +--------------------+ | information_schema | | mysql | +--------------------+ }}} 1. 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 = }}} 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 == . ''à écrire'' == Ce qu'il ne faut pas faire == . installer `phpmyadmin` quand vous n'en avez pas besoin : apprenez un peu le langage SQL, vous serez plus efficace . = 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 : . sur Wikibooks : http://fr.wikibooks.org/wiki/Programmation_SQL . sur Wikiversity : http://fr.wikiversity.org/wiki/SQL . et en anglais : http://en.wikibooks.org/wiki/SQL ou http://en.wikibooks.org/wiki/MySQL/Language == Exemples de manipulation avec MySQL == 1. Créer une base {{{ $ mysql -u -h -p $ mysql> create database ; }}} 1. Créer une table dans la base 1. Créer un utilisateur MySQL associé à une base Deux facons (au moins) de procéder: * D'abord créer l'utilisateur, ensuite lui associer des droits sur une base de données: {{{ $ create user identified by }}} * Créer l'utilisateur directement en lui octroyant les droits sur une bd: {{{ $ grant all on .* to @'localhost' identified by }}} * Accéder aux données avec le client `mysql` (en ligne de commande) Pour voir la liste des bases de données: {{{ $ mysql> show databases; }}} Pour utiliser une base de données en particulier: {{{ $ mysql> use ; }}} Pour voir la liste des tables de la bd: {{{ $ mysql> show tables; }}} Pour voir la structure d'une table en particulier: {{{ $ mysql> describe ; }}} 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". 1. Arrêter le serveur fonctionnel 1. Copier le contenu de /var/lib/mysql du disque défectueusement vers le dossier correspondant sur le serveur fonctionnel, à l'exception du dossier mysql. 1. S'assurer que les sous dossiers de /var/lib/mysql appartiennent tous à l'utilisateur "mysql" 1. 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 <> * Il s'appelle `mysqlcheck`. Il est lancé par le script `/etc/mysql/debian-start` à chaque (re)démarrage. 1. Relancer le serveur 1. Vérifier que les bd, tables et données sont bien lisibles. = Sauvegarde et restauration de bases MySQL = . ''à écrire'', en expliquant la problématique de la sauvegarde à chaud.