sql >> Database teknologi >  >> RDS >> Mysql

UDF resultat fejl

Tak Roland.

Så svaret på mit spørgsmål er "AppArmor".

Fra Wikipedia:

AppArmor giver systemadministratoren mulighed for at knytte en sikkerhedsprofil til hvert program, som begrænser det pågældende programs muligheder. Den supplerer den traditionelle Unix diskretionære adgangskontrol (DAC) model ved at levere obligatorisk adgangskontrol (MAC).

Siden Ubuntu Hardy indeholder MySQL 5.0-serverpakken også en AppArmor-profilfil (/etc/apparmor.d/usr.sbin.mysqld), som begrænser MySQL-serverfunktionaliteter, såsom at kalde en UDF for at udføre kommandoer.

Så for at lade MySQL køre Linux-kommandoer, bør jeg ændre sikkerhedsniveauet for MySql inde i AppArmor.

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

For at se på AppArmors status:

 [[email protected] ~]# aa-status 

Med denne konfiguration kan jeg udelukke sys_eval og sys_exec. Men det er stadig begrænset til mysql-biblioteket. Så jeg kan ikke oprette en fil eller køre et script fra nogen mappe.

Så løsningen er at tilføje tilladelser til apparmor for at mysql kan få adgang til de nye datamapper.

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

Tilføj:

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

Genstart serverne:

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

Hvis det stadig ikke virker, skal du kontrollere nix-tilladelserne for at være sikker på, at mysql er ejer og gruppe for den nye mappe rekursivt.

chown -R mysql:mysql “new datadir path”

Jeg håber, det kan hjælpe nogen.

Abid



  1. PostgreSQL Meltdown Benchmarks

  2. Sender PHP-variabler til MySQL

  3. PHP MySql (1045) Adgang nægtet for bruger

  4. Fjernelse af duplikerede rækker fra en tabel