Desde CP/WHM le quitó la capacidad de modificar los privilegios de usuario root en phpMyAdmin, usted tiene que utilizar la línea de comandos para:
mysql> GRANT FILE ON *.* TO 'user'@'localhost';
la etapa 2 se para permitir que ese usuario descargue un archivo en una carpeta específica. Hay algunas maneras de hacer esto, pero me acabó poniendo una carpeta en:
/home/user/tmp/db
y
chown mysql:mysql /home/user/tmp/db
que permite al usuario mysql para escribir el archivo. Como han dicho los carteles anteriores, también puede usar la carpeta temporal MySQL, no creo que realmente importe, pero definitivamente no desea otorgarle el permiso 0777 (escritura mundial) a menos que desee que el mundo vea sus datos. Existe un problema potencial si desea enjuagar: repita el proceso ya que INTO OUTFILE
no funcionará si el archivo existe. Si sus archivos son propiedad de un usuario diferente, simplemente intentar unlink($file)
no funcionará. Si eres como yo (paranoicos 0777) entonces se puede establecer el directorio de destino mediante:
chmod($dir,0777)
justo antes de hacer el comando de SQL, a continuación,
chmod($dir,0755)
inmediatamente después, seguido de unlink(file)
a eliminar el archivo. Esto mantiene todo funcionando bajo su usuario web y no es necesario invocar al usuario de mysql.
"TODOS LOS PRIVILEGIOS" no incluye todos los privilegios. Pertinente a este caso, no incluye el privilegio 'FILE', que es necesario para las sentencias' SELECT INTO OUTFILE'.He tenido varios problemas con esta falta de coincidencia entre el inglés y el MySQL: http://dba.stackexchange.com/a/96894/53784 – WAF