Совершенно случайно обнаружил в phpmyadmin возможность выполнения sql-кода из файла, расположенного на сервере. Эта фича очень удобна в том случае, когда необходимо зачитать большой sql dump (например при переезде базы с одного сервера на другой).
Я интересовался этой фичей давно, но по умолчанию она отключена, а поискать в настройках/документации я не догадался. Решил, что раз нет интерфейса, то и фичи тоже нет. Оказывается, фича есть. Чтобы её включить, надо в настройках phpmyadminа указать имя директории для загруженных файлов в опции $cfg[’UploadDir’]. Имя директории надо указывать относительно корневой папки phpmyadminа. Пустое имя = отключенная фича.
Если имя не пустое, то при выборе пункта меню Import File to import можно будет не только “Browse location of the text file”, но и выбрать его из “web server upload directory”. Расширение файла должно быть или .sql или .zip/.bz2/.gz в зависимости от поддерживаемых методов компрессии. Расширение файла должно быть нижнерегистровым.
Вот что написано в мануале по поводу этой фичи:
$cfg[’UploadDir’] string
The name of the directory where SQL files have been uploaded by other means than phpMyAdmin (for example, ftp). Those files are available under a drop-down box when you click the database name, then the SQL tab.
If you want different directory for each user, %u will be replaced with username.
Please note that the file names must have the suffix “.sql” (or “.sql.bz2″ or “.sql.gz” if support for compressed formats is enabled).
This feature is useful when your file is too big to be uploaded via HTTP, or when file uploads are disabled in PHP.
Please note that if PHP is running in safe mode, this directory must be owned by the same user as the owner of the phpMyAdmin scripts.
Я не тестил последний phpmyadmin, но в используемой мною версии список файлов появляется не на закладке “SQL”, а на закладке “Import”.