Cela arrive lorsque vous cherchez à déplacer le datadir de Mysql dans un autre de celui que celui par défaut (/var/lib/mysql)
Par exemple vers /home pour une machine OVH qui possède souvent plus de place disque.
Lorsque vous tentez de relancer MySQL, vous obtenez l'erreur Errcode: 13 "Permission denied" :
Code : Tout sélectionner
Feb 6 09:53:01 stock mysqld[3681]: 2019-02-06 9:53:01 139945931448768 [Note] /usr/sbin/mysqld (mysqld 10.1.37-MariaDB-0+deb9u1) starting as process 3681 ...
Feb 6 09:53:01 stock mysqld[3681]: 2019-02-06 9:53:01 139945931448768 [Warning] Can't create test file /home/mysqlDatabases/ovh-7.lower-test
Feb 6 09:53:01 stock mysqld[3681]: [b]#007/usr/sbin/mysqld: Can't change dir to '/home/mysqlDatabases/' (Errcode: 13 "Permission denied")[/b]
Sur Debian, il faut éditer le fichier suivant : /etc/systemd/system/mysqld.service
Ensuite cherchez la ligne :
Commentez la ligne ProcectHome puis systemctl daemon-reload# Prevent accessing /home, /root and /run/user
ProtectHome=true
Enfin relancez MySQL.
Cas Apparmor
Certains distributions sont livrées avec Apparmor qui permet d'associer un profil de sécurité à chaque application.
(dans mon cas, la Debian avec le template OVH n'est pas livrée avec ce programme.)
Il faut donc donner les permissions sur le dossier que vous souhaitez utiliser en data_dir à MySQL
Pour se faire, éditez le fichier /etc/apparmor.d/usr.sbin.mysqld
Ajouter les répertoires MySQL avec les permissions de la sorte.
Recharchez la configuration AppArmor : service apparmor reload/newDirectory/mysql/ r,
/newDirectory/mysql/** rwk,