最近在使用MySQL導(dǎo)入數(shù)據(jù)的時候,遇到一個非常頭疼的問題,就是一導(dǎo)入文件就未響應(yīng)。經(jīng)過一番排查,終于找到了解決辦法。下面我就來分享一下我的經(jīng)驗。
mysql -h localhost -u username -p database_name < filename.sql
上面這條命令是最常用的MySQL導(dǎo)入數(shù)據(jù)的方式。但是如果導(dǎo)入的數(shù)據(jù)過大,這個命令可能會出現(xiàn)未響應(yīng)的情況。
經(jīng)過查閱資料,原來MySQL導(dǎo)入數(shù)據(jù)時,會默認開啟autocommit
,也就是事務(wù)自動提交。如果數(shù)據(jù)量過大,可能會導(dǎo)致內(nèi)存不足的問題,最終導(dǎo)致MySQL卡死。
所以,我們可以在導(dǎo)入數(shù)據(jù)之前先將事務(wù)手動提交,具體的命令如下:
mysql -h localhost -u username -p database_name SET autocommit=0; source filename.sql; COMMIT;
這樣可以避免MySQL出現(xiàn)未響應(yīng)的情況,同時也保證數(shù)據(jù)的完整性。
以上就是我的解決辦法,希望對大家有所幫助。