Can't create/write to file (MySQL)
Schrijven naar willekeure locaties (casus okt. 2019)
Normaal kun je maar naar een paar plekken schrijven, zoals /tmp
. Op deze manier kan op een gehackte computer (bv. webserver) geen databases worden geëxporteerd binnen de mappen die door de webserver geserved worden. Binnen m'n ontwikkelomgeving zou ik echter handig vinden als MySQL kan schrijven naar dezelfde map als waar projecten draaien waar die exports bij horen.
Probleem
Dit is de foutmelding die ik krijg als ik naar bv. m'n thuismap schrijf:
16:23:57 select * from example_table into outfile "/home/strompf/test.tmp" Error Code: 1. Can't create/write to file '/home/strompf/test.tmp' (Errcode: 13 - Permission denied) 0,0038 sec
Mogelijke oorzake
- Beperkingen door AppArmor
- Beperkingen door MySQL zelf
- Bestandsrechten.
Aanvullende gegevens
- MySQL lijkt in complain-mode te werken in AppArmor - Da's goed
Oplossing
Het bleek een rechtenissue te zijn: Als ik binnen m'n thuismap een map mysql-test
aanmaakte, en de rechten verruimde met chmod o+w mysql-test
, was het probleem verholpen: MySQL draait niet met dezelfde rechten als ik. Vandaar.