简体   繁体   中英

What is the easy way to import large database to mysql using phpmyadmin?

I need to import an database(sql file) which is about 120M is size, but in phpmyAdmin, it is not allowed to import more than 8 MB.

How to solve this?

IIRC there is no limit in PHPMyAdmin nor is there in MySQL - the limit is on the POST size (webserver config) or the file upload size (php.ini). If you can't change either of these, then you'll need to upload the file by other means then ....

mysql -u username -p <mysql_export_file.sql

If you can't upload files / have no shell access / have no CLI version of the mysql client avaialable, then the next thing to try is to see whether you can connect remotely using the mysql CLI client:

mysql -u username -h www.example.com -p 

If this connects OK, then exit and run it again piping in the exported file

mysql -u username -h www.example.com -p <mysql_export_file.sql

If that doesn't work then you'll need to either split the export file into multiple smaller chunks or write your own dataloader which trickles the data.

C.

I have solved this in three ways in the past, here are the solutions in order of simplicity:

1) Increase the upload limit. Ask your host to allow you to upload larger files to the server (specifically the post_max_size and upload_max_filesize variables), probably best that they do this in phpMyAdmin's .htaccess file.

2) Upload via FTP. PHPMyAdmin supports uploading of SQL files via FTP but your host needs to configure the "UploadDir" setting .

3) Use a different import process. BigDump is the best for this. The problem is that it does still refuses to import some files because of the number of SQL lines or other errors, plus you have to configure it for each site/database.

I don't have direct access to server, so successfully used BigDump istead. You upload it via FTP together with big SQL file. Then BigDump imports the local file on server, avoiding any HTTP/PHP upload limits.

if you are sure that the import is clean and doesn't have any duplicates then you could try the following which reduces the time considerably.

mysql> set autocommit=0; set unique_checks=0; set foreign_key_checks=0;
mysql> source /path/to/dump.sql
mysql> commit; set unique_checks=1; set foreign_key_checks=1;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM