Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| utilisateurs:grigouille:brouillons:deplacer_mysql [Le 11/01/2017, 22:58] – déplacer (sans apparmor) grigouille | utilisateurs:grigouille:brouillons:deplacer_mysql [Le 20/01/2017, 21:07] (Version actuelle) – plus général pour my.cnf grigouille | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ==== Déplacer ses bases de données MySQL ==== | ==== Déplacer ses bases de données MySQL ==== | ||
| - | Les options sont lues dans le fichier '' | + | L' |
| - | < | + | Toutefois, |
| + | < | ||
| $ mysqld --verbose --help | head -n13 | tail -n2 | $ mysqld --verbose --help | head -n13 | tail -n2 | ||
| Default options are read from the following files in the given order: | Default options are read from the following files in the given order: | ||
| /etc/my.cnf / | /etc/my.cnf / | ||
| </ | </ | ||
| - | On a | + | Éventuellement ce fichier contient des directives **!includedir**. Il faut alors chercher dans ces répertoires le fichier qui contient **datadir**. |
| - | <code bash>$ tail / | + | |
| - | # For explanations see | + | |
| - | # http://dev.mysql.com/ | + | |
| - | # | + | Dans la suite, nous allons |
| - | # * IMPORTANT: Additional settings that can override those from this file! | + | |
| - | # The files must end with ' | + | |
| - | # | + | |
| - | + | ||
| - | !includedir / | + | |
| - | !includedir / | + | |
| - | </ | + | |
| - | $ grep datadir / | + | |
| - | / | + | |
| - | </ | + | |
| - | Donc par défaut, les données sont dans **/ | + | |
| - | === Une partition à part === | + | |
| - | Il peut être intéressant de les mettre sur une partition à part. Avec [[: | + | |
| - | === Déplacer les données === | + | |
| - | On va mettre | + | |
| Tout d' | Tout d' | ||
| - | < | + | < |
| - | On modifie | + | [[: |
| - | < | + | < |
| - | $ grep datadir / | + | datadir = /home/mysql |
| - | / | + | |
| </ | </ | ||
| + | On suppose que l' | ||
| On déplace les données : | On déplace les données : | ||
| - | < | + | < |
| Malheureusement cela ne suffit pas. | Malheureusement cela ne suffit pas. | ||
| Le premier problème vient du fichier''/ | Le premier problème vient du fichier''/ | ||
| - | < | + | < |
| $ head / | $ head / | ||
| sanity () { | sanity () { | ||
| Ligne 60: | Ligne 43: | ||
| </ | </ | ||
| - | Il faut donc faire : | + | Il faut donc créer le répertoire **/ |
| - | < | + | < |
| $ sudo chown -R mysql:mysql / | $ sudo chown -R mysql:mysql / | ||
| - | $ sudo chmod 700 /var/lib/mysql | + | $ sudo chmod -R 700 / |
| - | $ sudo chmod 750 / | + | |
| - | + | Il faut maintenant configurer | |
| - | + | <code> | |
| - | + | $ tail / | |
| - | + | # Site-specific additions and overrides. See local/ | |
| - | + | #include < | |
| - | + | </code> | |
| - | et | + | [[: |
| - | + | <code> | |
| - | === Préambule === | + | # Allow data dir access |
| - | Avant de vous lancer voir la discussion ici [[http:// | + | |
| - | en particulier: | + | |
| - | < | + | |
| - | D'abord c'est stupide car les fichiers de configuration sont justement faits pour y personnaliser la configuration… | + | |
| - | L' | + | |
| - | Si l'on a vraiment cette crainte, on ne touche pas au fichier my.cnf et on utilise le dossier conf.d qui est prévu pour y placer ses propres configurations. | + | |
| - | </note> | + | |
| - | < | + | |
| - | Ensuite c'est en contradiction avec la manipulation suivante qui fait modifier directement | + | |
| - | **'' | + | |
| - | #include < | + | |
| - | </note> | + | |
| - | La plupart des utilisateurs créent de 2 à 3 partitions sur leur(s) installation(s) : | + | |
| - | * / - une partition système | + | |
| - | * swap - une partition de de //swap// | + | |
| - | * /home - une partition réservée aux utilisateurs | + | |
| - | + | ||
| - | L' | + | |
| - | + | ||
| - | Il peut donc être intéressant pour cela de déplacer ses bases de données dans la partition /home. | + | |
| - | + | ||
| - | Remarque importante : Il y a deux méthodes pour changer le dossier des données, soit par lien symbolique comme décrit ci-après, soit en modifiant le fichier de configuration my.cnf. Toutefois si les utilitaires de MySQL comme mysqldump sont utilisés, il faut préférer la méthode de modification du my.cnf, car les liens symboliques ne semblent pas pris en compte par ces utilitaires. | + | |
| - | + | ||
| - | + | ||
| - | === Mise en place === | + | |
| - | + | ||
| - | Arrêter MySQL : | + | |
| - | + | ||
| - | sudo service mysql stop | + | |
| - | + | ||
| - | Déplacer le répertoire des bases de données : | + | |
| - | + | ||
| - | sudo mv / | + | |
| - | + | ||
| - | Le déplacement par ' | + | |
| - | + | ||
| - | Créer un lien symbolique afin de ne pas "// | + | |
| - | + | ||
| - | sudo ln -s /home/mysql / | + | |
| - | + | ||
| - | S' | + | |
| - | + | ||
| - | sudo chown -h mysql:mysql / | + | |
| - | + | ||
| - | Pour les versions d' | + | |
| - | + | ||
| - | [[: | + | |
| - | + | ||
| - | <file> | + | |
| - | / | + | |
| - | / | + | |
| - | </ | + | |
| - | + | ||
| - | et de les modifier en : | + | |
| - | + | ||
| - | < | + | |
| / | / | ||
| / | / | ||
| - | </file> | + | </code> |
| - | + | Rechargez | |
| - | On relance la configuration d' | + | < |
| - | + | Redémarrez le service | |
| - | | + | < |
| - | + | Vérifiez le changement : | |
| - | On relance MySql : | + | < |
| - | + | $ mysql -u root -p -e ' | |
| - | | + | Enter password: |
| - | + | +--------------+ | |
| - | Et voilà. | + | | @@datadir |
| + | +--------------+ | ||
| + | | / | ||
| + | +--------------+ | ||
| + | </ | ||
