Es posible que al tratar de importar un dump .sql a través de phpMyAdmin recibamos este error:
error: File could not be read
error: El fichero no pudo ser leído
Normalmente los errores con upload en PHP y phpMyAdmin suelen estar relacionados con que el límite de tamaño especificado para las directivas upload_max_filesize y post_max_size son inferiores al tamaño del archivo a subir:
upload_max_filesize = 4M post_max_size = 4M
En este caso el error no viene por aquí, sino con que una vez subido el fichero .sql a la ruta temporal especificada a nivel de PHP, phpMyAdmin no lo puede leer y por consiguiente no lo puede restaurar. Esto es debido a que php tiene activada la directiva/restricción open_basedir. Esta directiva se puede especificar a nivel global o por virtualhost, e indica que el virtualhost únicamente puede leer/escribir los ficheros contenidos en la ruta indicada. Si no añadimos entonces a su open_basedir la ruta temporal donde sube los ficheros PHP (normalmente /tmp o /var/tmp) recibiremos este error.
Podéis deshabilitar entonces open_basedir comentandolo en el php.ini:
;open_basedir
O añadir al virtualhost de Apache la directiva correspondiente, también se podría modificar la ruta de upload temporal para PHP de ese virtualhost desde programación.
<Directory /pma> php_admin_value open_basedir /var/tmp </Directory>