數(shù)據(jù)庫導(dǎo)入過大 報錯 ERROR 2006 (HY000) at line xx: MySQL server has gone away

解決辦法 ,找到my.ini文件??? vi /etc/my.cnf

將以下代碼添加到my.ini文件中。

? ? max_allowed_packet=256M

? ? wait_timeout=2880000

? ? interactive_timeout = 2880000

wait_timeout=2880000?

interactive_timeout?=?2880000?

max_allowed_packet?=?100M

修改my.cnf中的 wait_timeout 和 interactive_timeout變量

添加一句max_allowed_packet=16M,如果不行將16M再加大

加大wait_timeout也可起一定作用? ?例如:

wait_timeout=2880000

interactive_timeout = 2880000

max_allowed_packet = 100M

應(yīng)用時記住重啟數(shù)據(jù)庫哦~~

除此之外,可能還有一些別的buffer_size的變量會影響到,也值得注意 ,例如

read_buffer_size

read_rnd_buffer_size


完整配置文件

[mysqld]

#init_connect='SET collation_connection = utf8_unicode_ci'

#init_connect='SET NAMES utf8'

#character-set-server=utf8

#collation-server=utf8_unicode_ci

#skip-character-set-client-handshake

wait_timeout=2880000

interactive_timeout = 2880000

max_allowed_packet = 100M

[client]

#default-character-set=utf8

[mysql]

#default-character-set=utf8

[mysqld_safe]

log-error=/var/log/mariadb/mariadb.log

#pid-file=/var/run/mariadb/mariadb.pid

# include all files from the config directory

!includedir /etc/my.cnf.d


mysql導(dǎo)入數(shù)據(jù)錯誤“ERROR 2006 (HY000): MySQL server has gone away”

mysql導(dǎo)入導(dǎo)出的命令

mysqldump -u root -p dbname > D:\exp.sql ?--本地導(dǎo)出

mysqldump -u admin -p -h 192.168.50.59 -P 3306 ?dbname> D:\exp.sql --遠程導(dǎo)出

source D:\exp.sql --導(dǎo)入

mysql -u admin -p -h 192.168.50.59 -P 3306 -D dbname --遠程登錄



參考:http://www.111cn.net/database/mysql/106911.htm

1、修改mysqld的配置文件my.cnf

調(diào)整max_allowed_packet的值,修改為5M就比較合適了。

[mysqld]

port? ? ? ? = 3308

socket? ? ? = /dev/shm/mysqld.sock

skip-external-locking

key_buffer_size = 16M

max_allowed_packet = 10M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

2、修改[mysqld]中的值

[mysqldump]

quick

max_allowed_packet = 10M


參考:http://ronaldbradford.com/blog/sqlstatehy000-general-error-2006-mysql-server-has-gone-away-2013-01-02/

MySQL導(dǎo)入數(shù)據(jù)庫錯誤“ERROR 2006 (HY000):MySQL server has gone away” 這是MySQL數(shù)據(jù)庫中常見的一個錯誤,導(dǎo)致這個錯誤的原因主要有幾個。一般而言,這實際上意味著“您的SQL語句失敗,因為失去與數(shù)據(jù)庫的連接”,我們要做的就是檢查出是什么。以下是一些常見的情況以及如何檢查是什么?

1. MySQL 服務(wù)器真的不見了

? ? ?我們可以通過檢查服務(wù)器正常運行時間(uptime)和服務(wù)器的錯誤日志來檢查是否服務(wù)器確實消失了。??

? ? ? ?查看MySQL的正常運行時間(uptime):

show global status like 'uptime';?

? ? ?查詢錯誤日志的存儲位置,然后打開錯誤日志,根據(jù)日志記錄,確認是否存在服務(wù)器宕機。

? ? ?查詢錯誤日志的存儲位置:

show variables like '%error';? ? ?

? ? ? ?如果MySQL服務(wù)器確實消失了,它是關(guān)閉了還是崩潰了,MySQL的錯誤日志會提供答案。通常MySQL的守護程序(mysqld)將由mysqld_safe包裝器進程重新啟動。

?2. 連接超時

? ? ?查看各項連接時間:

show global variables like '%timeout';

? ? ? 這些值是相對是MySQL的默認值,但是如果你的超時時間很短,則可能會出現(xiàn)這個錯誤,比如:

3. 你的SQL語句被殺死了

? ? ?有些系統(tǒng)會主動殺死運行時間過長的SQL語句,我們可以通過查看已經(jīng)執(zhí)行的kill語句數(shù)量來檢查是否可能發(fā)生這種情況。

? ? ?查看mysql請求連接進程被主動殺死:

show global? status like 'com_kill';

4. 你的SQL語句太大了

? ? ?稍微難以測試和驗證,但是MySQL使用最大數(shù)據(jù)包站站點進行服務(wù)器和客戶端之間的通信。如果語句包含大字段,則可能由于SQL語句的大小,而被中止。

? ? ? 我們可以通過語句查看一下允許的最大包大?。?/b>

show global variables like 'max_allowed_packet';? ?(1024*1024*5=5242880)

? ? ?如果值比較小,可以設(shè)置大一點:

set global max_allowed_packet=1024*1024*16;

?如果修改后不夠大,可以繼續(xù)加大。

? ? 注:通過命令行設(shè)置的大小僅對本次的有效,重啟后就會回歸原始值。通過修改配置文件(my.ini)則可以永久的設(shè)置參數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容