我們?cè)趯?dǎo)入sql文件時(shí),由于數(shù)據(jù)過(guò)大,而發(fā)生錯(cuò)誤。筆者這幾天遇到了想MySQL數(shù)據(jù)庫(kù)中許多錯(cuò)誤,這就是其中一個(gè)。 發(fā)生這個(gè)錯(cuò)誤說(shuō)明你即將導(dǎo)入的數(shù)據(jù)包過(guò)大,默認(rèn)允許4M。 兩個(gè)辦法: 一、命令行修改:
 這里筆者已經(jīng)修改了,再修改一次也無(wú)妨。
 注意看!?。?/h2>max_allowed_packet這里是以字節(jié)為單位的,也可以直接寫500M。筆者用的是5.7版本,其他版本了解不是很多。但是如果你的my.ini配置文件在bin目錄下,這樣的修改是暫時(shí)的,如果重啟服務(wù)就會(huì)重新變成4M。按道理來(lái)說(shuō),重啟服務(wù)是應(yīng)該使用配置文件的值,而不是你修改的,親測(cè)這樣去set,只是“短暫”的效果,重啟服務(wù)后,還是使用的是默認(rèn)值。添加默認(rèn)值參照第二種辦法,第一種方法只適用臨時(shí)或者一次接收很大文件的情況。但是也請(qǐng)讀者看完下面的文章。 在網(wǎng)上就有很多說(shuō)在bin目錄下添加my.ini文件的,不錯(cuò),這樣是可以添加。但是你不會(huì)使用到配置文件中的值,因?yàn)樗菬o(wú)效的。正確的做法是在最開(kāi)始初始化MySQL的時(shí)候,在你安裝目錄下添加my.ini配置文件,修改這個(gè)文件才是有效的。 筆者在安裝的時(shí)候看到有貼子說(shuō)bin目錄下添加my.ini文件,即使我刪除之后再外面添加,也是無(wú)效的,可能是在初始化的時(shí)候設(shè)置了一些東西,我的做法是重新安裝,之后文章會(huì)講解如何完全刪除MySQL數(shù)據(jù)庫(kù)及重裝。目前就重裝吧。接下來(lái)看第二種辦法。
 第二個(gè)辦法是在my.ini配置文件中配置max_allowed_packet參數(shù),修改之后重啟服務(wù),就可以永久修改。再次提示,如果在my.ini在bin目錄下,即使你修改了配置文件,它是沒(méi)有生效的,親測(cè)。 [mysqld]port = 3306basedir=G:\mysql-5.7.27-winx64# MySQL程序安裝目錄datadir=G:\mysql-5.7.27-winx64\data
# 數(shù)據(jù)庫(kù)文件存放地址max_connections=20# 最大連接數(shù)character-set-server=utf8default-storage-engine=INNODB# 數(shù)據(jù)庫(kù)默認(rèn)使用引擎max_allowed_packet = 500M[mysql]default-character-set=utf8# mysql客戶端默認(rèn)的字符集,5.7才有的,5.6以及之前的版本沒(méi)有default-character-set屬性 
[mysqld]
port = 3306basedir=G:\mysql-5.7.27-winx64
# MySQL程序安裝目錄
datadir=G:\mysql-5.7.27-winx64\data
# 數(shù)據(jù)庫(kù)文件存放地址
max_connections=20# 最大連接數(shù)
character-set-server=utf8
default-storage-engine=INNODB
# 數(shù)據(jù)庫(kù)默認(rèn)使用引擎
max_allowed_packet = 500M
[mysql]
default-character-set=utf8
# mysql客戶端默認(rèn)的字符集,5.7才有的,5.6以及之前的版本沒(méi)有default-character-set屬性 
以上就是我的my.ini配置文件有興趣的可以參考一下,順便說(shuō)一下max_allowed_packet參數(shù)可以大可以小,只要能讀取sql文件不報(bào)錯(cuò)就行。
|