sql >> Database >  >> RDS >> Mysql

Fout in UDF-resultaat

Bedankt Roland.

Het antwoord op mijn vraag is dus "AppArmor".

Van Wikipedia:

Met AppArmor kan de systeembeheerder aan elk programma een beveiligingsprofiel koppelen dat de mogelijkheden van dat programma beperkt. Het vormt een aanvulling op het traditionele Unix-model voor discretionaire toegangscontrole (DAC) door verplichte toegangscontrole (MAC) te bieden.

Sinds Ubuntu Hardy bevat het MySQL 5.0-serverpakket ook een AppArmor-profielbestand (/etc/apparmor.d/usr.sbin.mysqld) dat de MySQL-serverfunctionaliteit beperkt, zoals het aanroepen van een UDF om opdrachten uit te voeren.

Dus, om MySQL Linux-commando's te laten uitvoeren, moet ik het beveiligingsniveau voor MySql in AppArmor wijzigen.

[[email protected] ~]# aa-complain /usr/sbin/mysqld 

Om de status van AppArmor te bekijken:

 [[email protected] ~]# aa-status 

Met deze configuratie kan ik sys_eval en sys_exec uitvoeren. Maar dat is nog steeds beperkt tot de mysql-map. Ik kan dus vanuit geen enkele map een bestand maken of een script uitvoeren.

De oplossing is dus om permissies toe te voegen aan apparmor voor mysql om toegang te krijgen tot de nieuwe gegevensmappen.

sudo vi /etc/apparmor.d/usr.sbin.mysqld

Toevoegen:

/newdir/ r,
/newdir/** rwk,

Start de servers opnieuw:

sudo /etc/init.d/apparmor restart
sudo /etc/init.d/mysql restart

Als dat nog steeds niet werkt, controleer dan de nix-machtigingen om er zeker van te zijn dat mysql recursief eigenaar en groep is voor de nieuwe map.

chown -R mysql:mysql “new datadir path”

Ik hoop dat dit iemand kan helpen.

Abid



  1. MySQL-weergaven en indexgebruik

  2. mysql:BRON fout 2?

  3. Kan er een database-onafhankelijke SQL-query zijn om de bovenste N rijen op te halen?

  4. Hoe gelijktijdige gebruikersaanmeldingen op de PHP/MySQL-site te voorkomen?