Если есть доступ к shell, то возможно использовать команду которая импортирует sql скрипт в mysql базу:
mysqldump -uUSER -pPASSWORD -hlocalhost DATABASE > FILE
mysqldump опции:
USER - логин пользователя к базе данных
PASSWORD - пароль пользователя к базе данных
localhost - надо указать адрес сервера, если локальный тогда localhost
DATABASE - название базы данных
FILE - файл куда сохранить sql скрипт
Так же возможно запустить shell команду локально на сервере через php функцию shell_exec:
//импортировать sql файл с данными shell_exec('mysql -uUSER -pPASSWORD -hlocalhost --default-character-set=utf8 --force DATABASE < FILE); //сохранить данные в sql файл shell_exec('mysqldump -uUSER -pPASSWORD -hlocalhost DATABASE > FILE);
Опция --default-character-set указывает кодировку файла по умолчанию, в примере будет utf8. Опция --force не останавливает импорт если произойдёт ошибка, например повторяющиеся значения для уникального поля.
Если sql дамп файл большой, то можно дополнительно увеличить ограничение времени действия php скрипта и сессии если используется добавив в начале скрипта:
//значение в секундах ini_set('max_execution_time', '10000'); ini_set('session.gc_maxlifetime', '10000');
Если надо скопировать базу с одного сервера на другой и есть доступ к обоим серверам, то так же подойдёт mysqldump:
mysqldump -hSERVER1 -uUSER -pPASSWORD --opt DATABASE | mysql -hSERVER2 -uUSER -pPASSWORD -C DATABASE
Подробнее о mysqldump http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html
Алтернативный вариант для импорта больших дампов без доступа к shell использовать php скрипт bigdump, который импортирует частями.