昨天部署了一套考試系統(tǒng),打算將原來(lái)考試系統(tǒng)的數(shù)據(jù)庫(kù)直接導(dǎo)入新系統(tǒng),省去錄入數(shù)據(jù)的苦惱豺瘤。無(wú)奈發(fā)現(xiàn)phpmyadmin導(dǎo)入數(shù)據(jù)限制大小為2M。網(wǎng)上搜索了很多解決辦法听诸,將其綜合最終導(dǎo)入成功坐求。具體步驟:
1.打開(kāi)PHP配置文件php.ini。查找upload_max_filesize 和post_max_size 把他們的值修改的大一點(diǎn)(100M)晌梨。如果上傳的文件很大桥嗤,還需進(jìn)行以下修改:
max_execution_time(php頁(yè)面執(zhí)行最大時(shí)間)
max_input_time(php頁(yè)面接受數(shù)據(jù)最大時(shí)間)
memory_limit(php頁(yè)面占用的最大內(nèi)存)
這是因?yàn)閜hpmyadmin上傳大文件時(shí),php頁(yè)面的執(zhí)行時(shí)間仔蝌、內(nèi)存占用也勢(shì)必變得更長(zhǎng)更大泛领,其需要php運(yùn)行環(huán)境的配合,光修改上傳文件大小限制是不夠的敛惊。
2.打開(kāi) phpmyadmin 目錄下的config.inc.php 文件渊鞋,查找$cfg[‘ExecTimeLimit’]配置選項(xiàng),默認(rèn)值是300瞧挤,需要修改為0锡宋,即沒(méi)有時(shí)間限制。
實(shí)際上特恬,在我的環(huán)境中$cfg[‘ExecTimeLimit’]的配置項(xiàng)在文件config.default.php中(612行)执俩。
3.打開(kāi) phpmyadmin 目錄下的import.php 文件 修改$memory_limit 的值
if(empty($memory_limit)){
$memory_limit=2*1024*1024;
}
if(($memory_limit)==-1){
$memory_limit=10*1024*1024;
}
都改成100*1024*1024(根據(jù)自己實(shí)際情況)。
說(shuō)明:首選讀取php.ini配置文件中的內(nèi)存配置選項(xiàng)memory_limit癌刽,如果為空則默認(rèn)內(nèi)存大小限制為2M疾宏,如果沒(méi)有限制則內(nèi)存大小限制為10M,你可以結(jié)合你php.ini配置文件中的相關(guān)信息修改這段代碼惧财。
注意此時(shí)重啟服務(wù),會(huì)發(fā)現(xiàn)文件限制的大小已經(jīng)變成了100M摊崭。但是當(dāng)我欣喜的導(dǎo)入的時(shí)候碰到了另一個(gè)問(wèn)題:
Error: mysql server has gone away讼油。
解決的方法就是找到mysql安裝目錄杰赛,找到my.ini文件,在文件的最后添加:max_allowed_packet = 100M(也可以設(shè)置自己需要的大小)矮台。 max_allowed_packet 參數(shù)的作用是乏屯,用來(lái)控制其通信緩沖區(qū)的最大長(zhǎng)度。
不得不說(shuō)的是瘦赫,我在配置這個(gè)參數(shù)之前辰晕,在my.ini中還添加了兩個(gè)參數(shù):
在my.cnf文件中添加或者修改以下兩個(gè)變量:
wait_timeout=2880000
interactive_timeout = 2880000
關(guān)于兩個(gè)變量的具體說(shuō)明可以google或者看官方手冊(cè)。
(雖然這里說(shuō)的是my.cnf,但是我是在my.ini中添加的)
最后确虱,成功導(dǎo)入了一個(gè)30多M的數(shù)據(jù)庫(kù)備份含友。