Maison > base de données > tutoriel mysql > Pourquoi MySQL SELECT INTO OUTFILE échoue-t-il avec Errcode 13 malgré les autorisations de fichier correctes ?

Pourquoi MySQL SELECT INTO OUTFILE échoue-t-il avec Errcode 13 malgré les autorisations de fichier correctes ?

Barbara Streisand
Libérer: 2025-01-24 15:07:13
original
554 Les gens l'ont consulté

Why Does MySQL SELECT INTO OUTFILE Fail with Errcode 13 Despite Correct File Permissions?

Dépannage du SELECT INTO OUTFILE Errcode 13 de MySQL : au-delà des autorisations de base

L'utilisation de SELECT INTO OUTFILE pour exporter des données MySQL vers un CSV peut être contrecarrée par Errcode 13, une erreur d'autorisation. Bien que les autorisations de fichiers insuffisantes soient la cause habituelle, le problème persiste même avec des autorisations de répertoire correctes, souvent en raison des mesures de sécurité d'AppArmor dans les versions modernes d'Ubuntu Server.

Le rôle d'AppArmor dans les autorisations MySQL

AppArmor, un module de sécurité Linux, restreint l'accès des applications aux ressources système. Si MySQL s'exécute sous un profil AppArmor (vérifiez avec sudo aa-status ; recherchez "/usr/sbin/mysqld" sous "profils en mode appliqué"), son accès en écriture peut être limité.

Résoudre le problème : accorder l'accès à AppArmor

Pour permettre à MySQL d'écrire dans des emplacements spécifiques :

  1. Modifiez le profil AppArmor : Ouvrez /etc/apparmor.d/usr.sbin.mysqld pour le modifier.

  2. Ajouter des autorisations en écriture : Ajoutez des lignes accordant un accès en lecture/écriture au répertoire cible. Par exemple :

<code>/usr/sbin/mysqld {
    ...
    /data/ r,
    /data/* rw,
}</code>
Copier après la connexion

Cela permet à MySQL de lire et d'écrire dans /data et ses sous-répertoires.

  1. Recharger AppArmor : Exécutez sudo /etc/init.d/apparmor reload pour appliquer les modifications.

  2. Redémarrez MySQL : Redémarrez le service MySQL. Réessayez votre commande SELECT INTO OUTFILE.

Remarque de sécurité importante : Examinez attentivement les implications de l'octroi d'un accès en écriture à MySQL via AppArmor. N'accordez l'accès qu'aux répertoires absolument nécessaires pour minimiser les risques de sécurité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal