Modifier l’emplacement des données d’un serveur MySQL

Logo MySQL

L’installation par défaut d’un serveur MySQL est suffisante pour être opérationnel dans la minute qui suit. Elle ne facilite en revanche pas la maintenance en laissant le répertoire contenant vos bases de données et tables hors de portée.

L’intérêt de choisir soi-même l’emplacement de ce répertoire, le datadir, est double :

  • regrouper les données en un endroit connu (facilite les sauvegardes)
  • utiliser le partitionnement du disque pour ne pas avoir à craindre une perte de données en cas de réinstallation du système (facilite la maintenance)

Nous allons voir comment procéder à ce changement tout en adaptant les sécurités des systèmes tels que SELinux et AppArmor. Ces derniers empêcheront en effet le serveur de démarrer.

Quelques généralités avant de commencer

Quitte à changer l’emplacement du datadir, autant le déplacer sur une partition qui ne sera pas effacé lors de la réinstallation de votre système d’exploitation, que ça soit du Linux, MacOS ou Windows.

Personnellement, sous Ubuntu/Debian, je crée un répertoire dans /home qui s’appelle mysql. Mon répertoire /home est bien entendu monté sur une partition différente. Si ce n’est pas le cas chez vous, pensez à déplacer votre /home.

sudo mkdir /home/mysql
sudo chown mysql:mysql /home/mysql

Enfin, dernier détail à connaître : l’emplacement de vos données MySQL :

  • sous Linux, généralement : /var/lib/mysql
  • sous Windows, avec WAMP : C:\Program Files\Wamp\mysql\data

Méthode 1 : modifier la configuration MySQL

C’est probablement la méthode la plus simple mais elle a l’inconvénient d’avoir à modifier un fichier de configuration. Il faut donc modifier la propriété datadir de votre fichier de configuration MySQL :

  • sous Linux, généralement : /etc/mysql/my.cnf
  • sous Windows, avec WAMP : C:\Program Files\Wamp\mysql\conf\my.ini

Dans ce fichier se trouve une section consacrée à la configuration générale du serveur mysql (mysqld pour mysql daemon) :

[mysqld]
user            = mysql
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp

J’ai mis en gras la ligne qui nous intéresse, à savoir le datadir.
Quelle valeur mettre ? Celle de l’emplacement souhaité pour vos données. Dans mon cas ça aurait été /home/mysql :

datadir         = /home/mysql

Vous vous assurerez d’avoir bien stoppé le service MySQL, d’avoir copié/collé vos données de l’ancien emplacement vers le nouveau et enfin de redémarrer MySQL. C’est seulement en cas de réussite que vous pourrez supprimer l’ancien répertoire ;-)

sudo -s
/etc/init.d/mysqld stop
cp -pr /var/lib/mysql/* /home/mysql
/etc/init.d/mysql start

Méthode 2 : utilisation d’un lien symbolique

La documentation de MySQL explique l’utilisation des liens symboliques pour tout, une base de données précises voire même les tables. Ceci dit nous allons voir l’exemple global : on déplace tout.

Concrètement cette méthode consiste à :

  1. stopper le service MySQL
  2. déplacer le répertoire de données (au cas où)
  3. créer le lien symbolique
  4. copier les données dans le nouvel emplacement
  5. relancer le service MySQL

Concrètement, ça se traduit comme ceci :

sudo -s
mv /var/lib/mysql /var/lib/mysql-old
ln -s /home/mysql /var/lib/mysql
cp -pr /var/lib/mysql-old/* /home/mysql
/etc/init.d/mysqld start

Là encore, supprimez la copie de vos données (répertoire mysql-old) seulement en cas de succès. Ça facilite les retours en arrière en cas de pépin.

Cas particulier : systèmes employant AppArmor ou SELinux

Il y a cependant un hic possible si vous utilisez une distribution Fedora ou Ubuntu, surtout depuis sa version Hardy Heron (8.04). Celle-ci intègre une sécurité pour éviter à certains services critiques d’être altérés par une manipulation extérieure … comme la notre.

Il faut savoir que les 2 méthodes du haut échoueront si vous rentrez dans ce cas de figure : le service MySQL ne démarre pas.
Pas de panique, il y a juste un fichier à modifier : /etc/apparmor.d/usr.sbin.mysqld. Il y a un passage ressemblant à ceci, dans le cas d’AppArmor et Ubuntu :

/etc/mysql/*.pem r,
/etc/mysql/conf.d/ r,
/etc/mysql/conf.d/* r,
/etc/mysql/my.cnf r,
/usr/sbin/mysqld mr,
/usr/share/mysql/** r,
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
/var/log/mysql/ r,
/var/log/mysql/* rw,
/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,

Vous voyez le loup venir. Il suffit de remplacer les occurences de /var/lib/mysql par le chemin de votre nouvel emplacement, /home/mysql dans notre cas :

/home/mysql/ r,
/home/mysql/** rwk,

La raison de cette modification est presque simple : AppArmor ne suit pas les liens symboliques. Il considère que /var/lib/mysql est différent de /home/mysql et que ce dernier ne concerne pas le service mysqld.
Notre modification évite ce blocage et permet du même coup au serveur MySQL de démarrer ; les échecs étant dus au fait que le serveur ne trouvait pas de base à charger (dont la sienne, mysql).

Pour terminer, on peut relancer les 2 services, apparmor et mysqld :

sudo /etc/init.d/apparmor restart
sudo /etc/init.d/mysqld restart

Conclusion

Nous avons vu 2 méthodes pour rendre sa gestion des bases de données plus souple et plus sure. En cas de défaillance système - ça arrive même aux meilleurs - il faut pouvoir le réinstaller sans craindre de perdre des données vitales. Et les bases de données le sont.

On peut aussi constater que les nouveaux services de protection peuvent compliquer la vie si on ne les sait pas actifs et si on ne comprend pas leur fonctionnement. J’ai passé plusieurs heures à comprendre pourquoi le serveur MySQL ne se relançait pas alors qu’il me semblait avoir effectué la même manipulation sur les précédentes versions d’Ubuntu.

N’hésitez pas à partager votre méthode ou apporter vos suggestions sur votre gestion des datadir.

Votre version d'Adobe Flash Player n'est pas suffisamment à jour pour afficher cette animation.

Articles relatifs

Modifier l’emplacement des données d’un serveur MySQL” a été publié le Dimanche 4 mai 2008 à 11:25.
Vous pouvez vous abonner à ses commentaires, déposer le vôtre et créer un rétrolien (depuis votre blog par exemple).

Catégories associées : Développement Web, Logiciels libres, Web

Tags associés : , , , , , , ,

22 commentaires : publier le mien ?

  1. Sprank a dit le Jeudi 8 mai 2008 :

    Je crois bien qu’il manque un “ne” entre “MySQL” et “démarre” dans la phrase : “Il faut savoir que les 2 méthodes du haut échoueront si vous rentrez dans ce cas de figure : le service MySQL démarre pas.”

  2. Oncle Tom a dit le Samedi 10 mai 2008 :

    Merci Sprank c’est corrigé ;)

  3. Daniel a dit le Dimanche 11 mai 2008 :

    Merci bcp, j’ai été confronté au pb et j’avais abandonné. (merci aussi à Simon Gaudillet de la ml ubuntu-fr qui m’a donné le lien vers ce billet, car mes recherche à partir du message d’erreur de mysql ne menaient que vers des pbs de droits)

  4. Oncle Tom a dit le Dimanche 11 mai 2008 :

    Tant mieux si ça sert ;-) j’avais posté le lien sur le forum Ubuntu-fr justement. À en voir l’affluence que ça provoque, on ne devait pas être les seuls concernés !

  5. Daniel a dit le Dimanche 11 mai 2008 :

    A la décharge des mainteneurs du paquet (et de la MOTU en général), le fichier my.cnf comporte bien l’avertissement suivant :

    # * IMPORTANT
    # If you make changes to these settings and your system uses apparmor, you
    may
    # also need to also adjust /etc/apparmor.d/usr.sbin.mysqld.

    comme me l’a gentiment rappellé Bruno Patri (ml ubuntu-fr aussi)…

    Bref, quand on a un pb après modif d’un fichier de conf, même si on le connait bien, toujours lire les COMMENTAIRES et les README ! ;-)

  6. Matt a dit le Mardi 13 mai 2008 :

    Un gros merci aussi pour ce tuto qui m’a sauvé la vie :)
    Il mérite largememt sa page dans la doc ubuntu-fr.
    Bonne continuation

  7. Jay a dit le Mardi 13 mai 2008 :

    Bonjour, bien ce tuto. Connais-tu la syntaxe pour rediriger uniquement la base de données mysql sur un autre serveur dédié bdd ?

  8. Oncle Tom a dit le Mardi 13 mai 2008 :

    Hm, pas sûr de comprendre pourquoi tu veux la mettre ailleurs : elle contient toutes les informations utilisées par MySQL pour fonctionner. Si tu la mets ailleurs, le serveur est ailleurs.

    Regarde soit du côté du clustering, soit du montage réseau. À moins que quelqu’un d’autre n’ait en tête une meilleure solution ?

  9. Daniel a dit le Mardi 13 mai 2008 :

    @Jay Je comprends que tu souhaite installer ta Base de données mysql sur un serveur B (et t’y connecter depuis ton poste A). C’est une conf classique que tu trouveras un peu partout. En gros, dire à B qu’il doit écouter sur une autre IP que 127.0.0.1 (bind-adress dans my.cnf) et à A qu’il doit interroger B pour ses requêtes (dans tes scripts de connexion, mettre B au lieu de localhost).

    Si tu parles de mettres les fichiers de bdd mysql sur un lecteur réseau, c’est TRÈS déconseillé (et n’a pas grand intérêt car tu ne peux pas les partager entre plusieurs serveurs mysql), c’est un bon moyen de se retrouver avec des bases corrompues (en dehors de la question des perfs).

    Si ce n’est pas ça que tu veux faire, dsl, j’ai mal compris…

  10. sparfait a dit le Mercredi 14 mai 2008 :

    Bonjour,
    J’ai modifié mes fichiers comme spécifié mais mon serveur mysql refuse de démarer j’ai le message suivant :
    “sudo /etc/init.d/mysql start
    * Starting MySQL database server mysqld [fail]

    Et là je n’ai plus le choix je n’ai plus de place sur ma partition contenant mon /var/lib/mysql … Est ce que quelqu’un pourrait m’aider ?

  11. Oncle Tom a dit le Mercredi 14 mai 2008 :

    Où se trouvent tes données mysql (vu que tu sembles l’avoir déplacé de /var/lib/mysql) ? Il faut dans ce cas :

    1. modifier l’emplacement datadir dans le my.cnf
    2. reporter ce nouvel emplacement dans le fichier de configuration d’apparmor pour MySQL
  12. Jay a dit le Jeudi 15 mai 2008 :

    Oui tu as vu juste Daniel, c bien cela…
    Site web en utilisant 2 serveurs sous DEBIAN :
    A en “front” MySQL client, B en “BDD” MySQL server…
    Sais-tu précisement quels scripts de connexion dois-je modifier en A ?

  13. Oncle Tom a dit le Jeudi 15 mai 2008 :

    Dans ce cas c’est de la réplication MySQL que tu veux faire ;) y’a 1 fichier à modifier et éventuellement les données à synchroniser.

  14. Jay a dit le Jeudi 15 mai 2008 :

    Merci Oncle TOM pour cette suggestion mais le but n’est pas de faire une réplication ou backup… La configuration est différente sur chaque serveur… Par ex., j’installe APACHE2 et MySQL client sur le 1er et sur le second, j’installe MySQL server sans APACHE2… Mais j’ai du mal à trouver des infos précises sur ce type de configuration apparament très utilisée en entreprise. Si tu as des sources, elles sont les bienvenues :-)

  15. Oncle Tom a dit le Vendredi 16 mai 2008 :

    Ah ben écoute de ce que tu en dis tu veux faire une réplication … ou alors tu veux te connecter à B depuis A.

    Si c’est ce dernier cas, il faut

    1. ouvrir l’écoute réseau sur le serveur B (dans my.cnf, y’a une partie commentée à ce sujet)
    2. établir une connexion MySQL sur l’IP du serveur B et non `localhost`
    3. verrouiller l’écoute sur le serveur B pour n’autoriser que les connexions locales (locahost) ou provenant de A (pour éviter les attaques extérieures)

    Si c’est pas ça j’ai rien compris ;-)

  16. Daniel a dit le Vendredi 16 mai 2008 :

    @Jay, les scripts que tu dois modifier sont tous ceux (php, ruby, perl, python, java, etc.) qui se connectent à mysql via “localhost” ou “127.0.0.1″ (ou le nom du host sur lequel ils sont). Tu dois mettre à la place le nom ou l’IP de B.

    En général, pour chaque appli web, tu as un fichier de param où tu indique host, login, pass, tu dois donc changer le host pour chaque appli.

  17. sparfait a dit le Vendredi 16 mai 2008 :

    Bonjour,
    Suite de mon message de mercredi 14 mai :
    J’ai copié le répertoire /var/lib/mysql
    dans un répertoire qui se trouve sur un disque monter sur /media/MYSQL (FAT 32) sur lequel j’ai créé un répertoire “LINUX”. Mes data se retrouvent donc dans le chemin suivant /media/MYSQL/LINUX/mysql
    J’ai donc modifié mon fychier my.cnf ainsi :
    user = mysql
    pid-file = /var/run/mysqld/mysqld.pid
    socket = /var/run/mysqld/mysqld.sock
    port = 3306
    basedir = /usr
    datadir=/media/MYSQL/LINUX/mysql
    tmpdir = /tmp
    language = /usr/share/mysql/french

    et mon fichier usr.sbin.mysqld ainsi :
    # vim:syntax=apparmor
    # Last Modified: Tue Jun 19 17:37:30 2007
    #include

    /usr/sbin/mysqld {
    #include
    #include
    #include
    #include

    capability dac_override,
    capability setgid,
    capability setuid,

    /etc/hosts.allow r,
    /etc/hosts.deny r,

    /etc/group m,
    /etc/passwd m,

    /etc/mysql/*.pem r,
    /etc/mysql/conf.d/ r,
    /etc/mysql/conf.d/* r,
    /etc/mysql/my.cnf r,
    /usr/sbin/mysqld mr,
    /usr/share/mysql/** r,
    /media/MYSQL/LINUX/mysql/ r,
    /media/MYSQL/LINUX/mysql/** rwk,
    /var/log/mysql/ r,
    /var/log/mysql/* rw,
    /var/run/mysqld/mysqld.pid w,
    /var/run/mysqld/mysqld.sock w,
    }

    je redemarre apparmor par sudo /etc/init.d/apparmor restart ==> OK
    Je démarre MySQL par sudo /etc/init.d/mysql start ==> Starting MySQL database server mysqld [fail]
    J’ai fait la meme manip en placant le répertoire /var/lib/mysql dans mon répertoire home ==> même problème …

    Merci pour tout aide !!

  18. stadrum a dit le Dimanche 18 mai 2008 :

    Bonjour et merci pour ce tuto qui m’a beaucoup aidé.
    J’avais commencé la manip’ de bouger mon dossier mysql en suivant le tuto de LAMP de doc.ubuntu-fr.org et ça m’a tout mis en l’air.
    Du coup, ce serait chouette d’intégrer cette page au site d’Ubuntu, voir même en lieu et place du tuto qui m’a fait “plus de peur que de mal”…

  19. Oncle Tom a dit le Dimanche 18 mai 2008 :

    @stadrum : la documentation a été mise à jour visiblement avec un lien vers le sujet que j’avais créé ;) ce n’était qu’une question de temps !

  20. Jay a dit le Lundi 19 mai 2008 :

    Ok çà fonctionne, merci de votre aide :)

  21. sparfait a dit le Lundi 19 mai 2008 :

    Ok ca fonctionne aussi pour moi : Je n’avais pas mis les bonnes options pour monter mon disque où je voulais mettre mon répertoire avec les données.
    Merci.

  22. michelw a dit le Dimanche 15 juin 2008 :

    Je vous sollicite car je viens d’essayer de faire cette manipulation par deux fios en réinstallant le système entre les deux, mais cela ne fonctionne pas. Ci-joint la copie de mon éditeur:

    michel@1:~$ sudo mkdir /home/michel/mysql
    [sudo] password for michel:
    michel@1:~$ sudo chown mysql:mysql /home/michel/mysql
    michel@1:~$ sudo /etc/init.d/mysql stop
     * Stopping MySQL database server mysqld                                 [ OK ]
    michel@1:~$ sudo mv -v /var/lib/mysql /home/michel/mysql
    `/var/lib/mysql' -> `/home/michel/mysql/mysql'
    `/var/lib/mysql/ibdata1' -> `/home/michel/mysql/mysql/ibdata1'
    `/var/lib/mysql/mysql_upgrade_info' -> `/home/michel/mysql/mysql/mysql_upgrade_info'
    `/var/lib/mysql/mysql' -> `/home/michel/mysql/mysql/mysql'
    `/var/lib/mysql/mysql/help_category.frm' -> `/home/michel/mysql/mysql/mysql/help_category.frm'
    `/var/lib/mysql/mysql/tables_priv.MYD' -> `/home/michel/mysql/mysql/mysql/tables_priv.MYD'
    `/var/lib/mysql/mysql/help_keyword.MYI' -> `/home/michel/mysql/mysql/mysql/help_keyword.MYI'
    `/var/lib/mysql/mysql/help_topic.MYI' -> `/home/michel/mysql/mysql/mysql/help_topic.MYI'
    `/var/lib/mysql/mysql/procs_priv.MYD' -> `/home/michel/mysql/mysql/mysql/procs_priv.MYD'
    `/var/lib/mysql/mysql/user.MYD' -> `/home/michel/mysql/mysql/mysql/user.MYD'
    `/var/lib/mysql/mysql/time_zone_transition_type.MYD' -> `/home/michel/mysql/mysql/mysql/time_zone_transition_type.MYD'
    `/var/lib/mysql/mysql/host.MYD' -> `/home/michel/mysql/mysql/mysql/host.MYD'
    `/var/lib/mysql/mysql/time_zone_leap_second.MYI' -> `/home/michel/mysql/mysql/mysql/time_zone_leap_second.MYI'
    `/var/lib/mysql/mysql/user.frm' -> `/home/michel/mysql/mysql/mysql/user.frm'
    `/var/lib/mysql/mysql/time_zone_leap_second.frm' -> `/home/michel/mysql/mysql/mysql/time_zone_leap_second.frm'
    `/var/lib/mysql/mysql/columns_priv.MYD' -> `/home/michel/mysql/mysql/mysql/columns_priv.MYD'
    `/var/lib/mysql/mysql/user.MYI' -> `/home/michel/mysql/mysql/mysql/user.MYI'
    `/var/lib/mysql/mysql/procs_priv.frm' -> `/home/michel/mysql/mysql/mysql/procs_priv.frm'
    `/var/lib/mysql/mysql/help_category.MYD' -> `/home/michel/mysql/mysql/mysql/help_category.MYD'
    `/var/lib/mysql/mysql/time_zone_transition.MYI' -> `/home/michel/mysql/mysql/mysql/time_zone_transition.MYI'
    `/var/lib/mysql/mysql/func.MYD' -> `/home/michel/mysql/mysql/mysql/func.MYD'
    `/var/lib/mysql/mysql/procs_priv.MYI' -> `/home/michel/mysql/mysql/mysql/procs_priv.MYI'
    `/var/lib/mysql/mysql/columns_priv.MYI' -> `/home/michel/mysql/mysql/mysql/columns_priv.MYI'
    `/var/lib/mysql/mysql/help_relation.frm' -> `/home/michel/mysql/mysql/mysql/help_relation.frm'
    `/var/lib/mysql/mysql/db.MYD' -> `/home/michel/mysql/mysql/mysql/db.MYD'
    `/var/lib/mysql/mysql/proc.MYD' -> `/home/michel/mysql/mysql/mysql/proc.MYD'
    `/var/lib/mysql/mysql/help_topic.frm' -> `/home/michel/mysql/mysql/mysql/help_topic.frm'
    `/var/lib/mysql/mysql/func.MYI' -> `/home/michel/mysql/mysql/mysql/func.MYI'
    `/var/lib/mysql/mysql/time_zone_name.frm' -> `/home/michel/mysql/mysql/mysql/time_zone_name.frm'
    `/var/lib/mysql/mysql/proc.MYI' -> `/home/michel/mysql/mysql/mysql/proc.MYI'
    `/var/lib/mysql/mysql/func.frm' -> `/home/michel/mysql/mysql/mysql/func.frm'
    `/var/lib/mysql/mysql/proc.frm' -> `/home/michel/mysql/mysql/mysql/proc.frm'
    `/var/lib/mysql/mysql/time_zone_name.MYI' -> `/home/michel/mysql/mysql/mysql/time_zone_name.MYI'
    `/var/lib/mysql/mysql/db.MYI' -> `/home/michel/mysql/mysql/mysql/db.MYI'
    `/var/lib/mysql/mysql/db.frm' -> `/home/michel/mysql/mysql/mysql/db.frm'
    `/var/lib/mysql/mysql/help_keyword.frm' -> `/home/michel/mysql/mysql/mysql/help_keyword.frm'
    `/var/lib/mysql/mysql/time_zone.MYD' -> `/home/michel/mysql/mysql/mysql/time_zone.MYD'
    `/var/lib/mysql/mysql/host.frm' -> `/home/michel/mysql/mysql/mysql/host.frm'
    `/var/lib/mysql/mysql/host.MYI' -> `/home/michel/mysql/mysql/mysql/host.MYI'
    `/var/lib/mysql/mysql/time_zone.frm' -> `/home/michel/mysql/mysql/mysql/time_zone.frm'
    `/var/lib/mysql/mysql/help_keyword.MYD' -> `/home/michel/mysql/mysql/mysql/help_keyword.MYD'
    `/var/lib/mysql/mysql/time_zone_transition_type.MYI' -> `/home/michel/mysql/mysql/mysql/time_zone_transition_type.MYI'
    `/var/lib/mysql/mysql/help_category.MYI' -> `/home/michel/mysql/mysql/mysql/help_category.MYI'
    `/var/lib/mysql/mysql/time_zone_name.MYD' -> `/home/michel/mysql/mysql/mysql/time_zone_name.MYD'
    `/var/lib/mysql/mysql/tables_priv.MYI' -> `/home/michel/mysql/mysql/mysql/tables_priv.MYI'
    `/var/lib/mysql/mysql/columns_priv.frm' -> `/home/michel/mysql/mysql/mysql/columns_priv.frm'
    `/var/lib/mysql/mysql/time_zone_transition.frm' -> `/home/michel/mysql/mysql/mysql/time_zone_transition.frm'
    `/var/lib/mysql/mysql/help_relation.MYD' -> `/home/michel/mysql/mysql/mysql/help_relation.MYD'
    `/var/lib/mysql/mysql/time_zone_transition_type.frm' -> `/home/michel/mysql/mysql/mysql/time_zone_transition_type.frm'
    `/var/lib/mysql/mysql/tables_priv.frm' -> `/home/michel/mysql/mysql/mysql/tables_priv.frm'
    `/var/lib/mysql/mysql/time_zone_transition.MYD' -> `/home/michel/mysql/mysql/mysql/time_zone_transition.MYD'
    `/var/lib/mysql/mysql/help_relation.MYI' -> `/home/michel/mysql/mysql/mysql/help_relation.MYI'
    `/var/lib/mysql/mysql/time_zone_leap_second.MYD' -> `/home/michel/mysql/mysql/mysql/time_zone_leap_second.MYD'
    `/var/lib/mysql/mysql/help_topic.MYD' -> `/home/michel/mysql/mysql/mysql/help_topic.MYD'
    `/var/lib/mysql/mysql/time_zone.MYI' -> `/home/michel/mysql/mysql/mysql/time_zone.MYI'
    `/var/lib/mysql/debian-5.0.flag' -> `/home/michel/mysql/mysql/debian-5.0.flag'
    `/var/lib/mysql/ib_logfile1' -> `/home/michel/mysql/mysql/ib_logfile1'
    `/var/lib/mysql/ib_logfile0' -> `/home/michel/mysql/mysql/ib_logfile0'
    détruit `/var/lib/mysql/ibdata1'
    détruit `/var/lib/mysql/mysql_upgrade_info'
    détruit `/var/lib/mysql/mysql/help_category.frm'
    détruit `/var/lib/mysql/mysql/tables_priv.MYD'
    détruit `/var/lib/mysql/mysql/help_keyword.MYI'
    détruit `/var/lib/mysql/mysql/help_topic.MYI'
    détruit `/var/lib/mysql/mysql/procs_priv.MYD'
    détruit `/var/lib/mysql/mysql/user.MYD'
    détruit `/var/lib/mysql/mysql/time_zone_transition_type.MYD'
    détruit `/var/lib/mysql/mysql/host.MYD'
    détruit `/var/lib/mysql/mysql/time_zone_leap_second.MYI'
    détruit `/var/lib/mysql/mysql/user.frm'
    détruit `/var/lib/mysql/mysql/time_zone_leap_second.frm'
    détruit `/var/lib/mysql/mysql/columns_priv.MYD'
    détruit `/var/lib/mysql/mysql/user.MYI'
    détruit `/var/lib/mysql/mysql/procs_priv.frm'
    détruit `/var/lib/mysql/mysql/help_category.MYD'
    détruit `/var/lib/mysql/mysql/time_zone_transition.MYI'
    détruit `/var/lib/mysql/mysql/func.MYD'
    détruit `/var/lib/mysql/mysql/procs_priv.MYI'
    détruit `/var/lib/mysql/mysql/columns_priv.MYI'
    détruit `/var/lib/mysql/mysql/help_relation.frm'
    détruit `/var/lib/mysql/mysql/db.MYD'
    détruit `/var/lib/mysql/mysql/proc.MYD'
    détruit `/var/lib/mysql/mysql/help_topic.frm'
    détruit `/var/lib/mysql/mysql/func.MYI'
    détruit `/var/lib/mysql/mysql/time_zone_name.frm'
    détruit `/var/lib/mysql/mysql/proc.MYI'
    détruit `/var/lib/mysql/mysql/func.frm'
    détruit `/var/lib/mysql/mysql/proc.frm'
    détruit `/var/lib/mysql/mysql/time_zone_name.MYI'
    détruit `/var/lib/mysql/mysql/db.MYI'
    détruit `/var/lib/mysql/mysql/db.frm'
    détruit `/var/lib/mysql/mysql/help_keyword.frm'
    détruit `/var/lib/mysql/mysql/time_zone.MYD'
    détruit `/var/lib/mysql/mysql/host.frm'
    détruit `/var/lib/mysql/mysql/host.MYI'
    détruit `/var/lib/mysql/mysql/time_zone.frm'
    détruit `/var/lib/mysql/mysql/help_keyword.MYD'
    détruit `/var/lib/mysql/mysql/time_zone_transition_type.MYI'
    détruit `/var/lib/mysql/mysql/help_category.MYI'
    détruit `/var/lib/mysql/mysql/time_zone_name.MYD'
    détruit `/var/lib/mysql/mysql/tables_priv.MYI'
    détruit `/var/lib/mysql/mysql/columns_priv.frm'
    détruit `/var/lib/mysql/mysql/time_zone_transition.frm'
    détruit `/var/lib/mysql/mysql/help_relation.MYD'
    détruit `/var/lib/mysql/mysql/time_zone_transition_type.frm'
    détruit `/var/lib/mysql/mysql/tables_priv.frm'
    détruit `/var/lib/mysql/mysql/time_zone_transition.MYD'
    détruit `/var/lib/mysql/mysql/help_relation.MYI'
    détruit `/var/lib/mysql/mysql/time_zone_leap_second.MYD'
    détruit `/var/lib/mysql/mysql/help_topic.MYD'
    détruit `/var/lib/mysql/mysql/time_zone.MYI'
    détruire le répertoire: `/var/lib/mysql/mysql'
    détruit `/var/lib/mysql/debian-5.0.flag'
    détruit `/var/lib/mysql/ib_logfile1'
    détruit `/var/lib/mysql/ib_logfile0'
    détruire le répertoire: `/var/lib/mysql'
    michel@1:~$ sudo ln -s /home/michel/mysql /var/lib/mysql
    michel@1:~$ sudo gedit /etc/apparamor.d/usr.sbin.mysqld
    michel@1:~$  sudo gedit /etc/apparamor.d/usr.sbin.mysql
    michel@1:~$ sudo gedit /etc/apparmor.d/usr.sbin.mysqld
    michel@1:~$ sudo /etc/init.d/mysql restart
     * Stopping MySQL database server mysqld                                 [ OK ]
     * Starting MySQL database server mysqld                                 [fail]

    Je vous joints également la copie de mon fichier modifié: usr.sbin.mysqld

      /etc/mysql/*.pem r,
      /etc/mysql/conf.d/ r,
      /etc/mysql/conf.d/* r,
      /etc/mysql/my.cnf r,
      /usr/sbin/mysqld mr,
      /usr/share/mysql/** r,
      /home/michel/mysql/ r,
      /home/michel/mysql/** rwk,
      /var/log/mysql/ r,
      /var/log/mysql/* rw,
      /var/run/mysqld/mysqld.pid w,
      /var/run/mysqld/mysqld.sock w,

    Pourriez vous m’aider? En vous remerciant
    Michel

Publier un commentaire

Balises HTML autorisées : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

À propos de l'auteur

Pour me connaître un peu mieux, je mets à disposition plusieurs ressources professionnelles et personnelles :