sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo puedo sortear MySQL Errcode 13 con SELECT INTO OUTFILE?

¿Qué versión particular de Ubuntu es esta y es Ubuntu Server Edition?

Las ediciones recientes de Ubuntu Server (como 10.04) se envían con AppArmor y el perfil de MySQL puede estar en modo de aplicación de forma predeterminada. Puede verificar esto ejecutando sudo aa-status así:

# sudo aa-status
5 profiles are loaded.
5 profiles are in enforce mode.
   /usr/lib/connman/scripts/dhclient-script
   /sbin/dhclient3
   /usr/sbin/tcpdump
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/sbin/mysqld
0 profiles are in complain mode.
1 processes have profiles defined.
1 processes are in enforce mode :
   /usr/sbin/mysqld (1089)
0 processes are in complain mode.

Si mysqld está incluido en el modo de aplicación, entonces es probablemente el que niega la escritura. Las entradas también se escribirían en /var/log/messages cuando AppArmor bloquea las escrituras/accesos. Lo que puede hacer es editar /etc/apparmor.d/usr.sbin.mysqld y agrega /data/ y /data/* cerca de la parte inferior así:

...  
/usr/sbin/mysqld  {  
    ...  
    /var/log/mysql/ r,  
    /var/log/mysql/* rw,  
    /var/run/mysqld/mysqld.pid w,  
    /var/run/mysqld/mysqld.sock w,  
    **/data/ r,  
    /data/* rw,**  
}

Y luego haz que AppArmor vuelva a cargar los perfiles.

# sudo /etc/init.d/apparmor reload

ADVERTENCIA:el cambio anterior permitirá que MySQL lea y escriba en el directorio /data. Esperamos que ya haya considerado las implicaciones de seguridad de esto.