sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag komma runt MySQL Errcode 13 med SELECT INTO OUTFILE?

Vilken speciell version av Ubuntu är detta och är denna Ubuntu Server Edition?

Nya Ubuntu Server Editions (som 10.04) levereras med AppArmor och MySQL:s profil kan vara i upprätthållande läge som standard. Du kan kontrollera detta genom att köra sudo aa-status som så:

# 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.

Om mysqld är inkluderat i enforce-läge är det förmodligen den som nekar skrivningen. Inlägg skulle också skrivas i /var/log/messages när AppArmor blockerar skrivningar/åtkomster. Det du kan göra är att redigera /etc/apparmor.d/usr.sbin.mysqld och lägg till /data/ och /data/* nära botten som så:

...  
/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,**  
}

Och gör sedan att AppArmor laddar om profilerna.

# sudo /etc/init.d/apparmor reload

VARNING:ändringen ovan tillåter MySQL att läsa och skriva till /data-katalogen. Vi hoppas att du redan har övervägt säkerhetskonsekvenserna av detta.



  1. Hur man kommer igång med SQL Server på Azure

  2. Inre Sammanfogning av tre bord

  3. SLIPP TABELL OM FINNS i SQLite

  4. 3 sätt att "Unhex" en sträng i MySQL