| Les deux révisions précédentesRévision précédente | |
| utilisateurs:grigouille:brouillons:deplacer_mysql [Le 12/01/2017, 22:11] – erreur dans mv grigouille | utilisateurs:grigouille:brouillons:deplacer_mysql [Le 20/01/2017, 21:07] (Version actuelle) – plus général pour my.cnf grigouille |
|---|
| /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf | /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf |
| </code> | </code> |
| Par défaut, il s'agit du fichier ''/etc/mysql/my.cnf'' : | Éventuellement ce fichier contient des directives **!includedir**. Il faut alors chercher dans ces répertoires le fichier qui contient **datadir**. |
| <code>$ tail /etc/mysql/my.cnf | |
| # For explanations see | |
| # http://dev.mysql.com/doc/mysql/en/server-system-variables.html | |
| |
| # | Dans la suite, nous allons déplacer les données dans **/home/mysql**. |
| # * IMPORTANT: Additional settings that can override those from this file! | |
| # The files must end with '.cnf', otherwise they'll be ignored. | |
| # | |
| | |
| !includedir /etc/mysql/conf.d/ | |
| !includedir /etc/mysql/mysql.conf.d/ | |
| </code><code> | |
| $ grep datadir /etc/mysql/mysql.conf.d/*.cnf | |
| /etc/mysql/mysql.conf.d/mysqld.cnf:datadir = /var/lib/mysql | |
| </code> | |
| Donc par défaut, les données sont dans **/var/lib/mysql**. | |
| On va mettre les données dans **/home/mysql**. | |
| |
| Tout d'abord on arrête le service : | Tout d'abord on arrête le service : |
| <code>$ sudo service mysql stop</code> | <code>$ sudo service mysql stop</code> |
| On modifie **datadir** avec le nouvel emplacement dans le fichier **/etc/mysql/mysql.conf.d/mysqld.cnf** : | [[:tutoriel:comment_modifier_un_fichier|On édite le fichier]] qui contient **datadir** : |
| <code> | <code> |
| $ grep datadir /etc/mysql/mysql.conf.d/*.cnf | datadir = /home/mysql |
| /etc/mysql/mysql.conf.d/mysqld.cnf:datadir = /home/mysql | |
| </code> | </code> |
| | On suppose que l'ancienne valeur de **datadir** était **/var/lib/mysql**. |
| On déplace les données : | On déplace les données : |
| <code>$ sudo mv /var/lib/mysql /home</code> | <code>$ sudo mv /var/lib/mysql /home</code> |
| </code> | </code> |
| |
| Il faut donc créer le répertoire **/var/lib/mysql/mysql** : | Il faut donc créer le répertoire **/var/lib/mysql/mysql** avec les bons droits : |
| <code>$ sudo mkdir -p /var/lib/mysql/mysql | <code>$ sudo mkdir -p /var/lib/mysql/mysql |
| $ sudo chown -R mysql:mysql /var/lib/mysql | $ sudo chown -R mysql:mysql /var/lib/mysql |
| $ sudo chmod 700 /var/lib/mysql | $ sudo chmod -R 700 /var/lib/mysql</code> |
| $ sudo chmod 750 /var/lib/mysql/mysql</code> | |
| |
| Il faut maintenant configurer [[:apparmor|AppArmor]]. D'après ce qui suit, nous devons modifier le fichier ''local/usr.sbin.mysqld'' : | Il faut maintenant configurer [[:apparmor|AppArmor]]. D'après ce qui suit, nous devons modifier le fichier ''local/usr.sbin.mysqld'' : |
| #include <local/usr.sbin.mysqld> | #include <local/usr.sbin.mysqld> |
| </code> | </code> |
| Modifions donc le fichier ''/etc/apparmor.d/local/usr.sbin.mysqld'' : | [[:tutoriel:comment_modifier_un_fichier|Modifier le fichier]] ''/etc/apparmor.d/local/usr.sbin.mysqld'' en ajoutant : |
| <code>$ cat /etc/apparmor.d/local/usr.sbin.mysqld | <code> |
| # Site-specific additions and overrides for usr.sbin.mysqld. | |
| # For more details, please see /etc/apparmor.d/local/README. | |
| # Allow data dir access | # Allow data dir access |
| /home/mysql/ r, | /home/mysql/ r, |