解決辦法 ,找到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
應用時記住重啟數據庫哦~~
除此之外,可能還有一些別的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導入數據錯誤“ERROR 2006 (HY000): MySQL server has gone away”
mysql導入導出的命令
mysqldump -u root -p dbname > D:\exp.sql ?--本地導出
mysqldump -u admin -p -h 192.168.50.59 -P 3306 ?dbname> D:\exp.sql --遠程導出
source D:\exp.sql --導入
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
調整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導入數據庫錯誤“ERROR 2006 (HY000):MySQL server has gone away” 這是MySQL數據庫中常見的一個錯誤,導致這個錯誤的原因主要有幾個。一般而言,這實際上意味著“您的SQL語句失敗,因為失去與數據庫的連接”,我們要做的就是檢查出是什么。以下是一些常見的情況以及如何檢查是什么?
1. MySQL 服務器真的不見了
? ? ?我們可以通過檢查服務器正常運行時間(uptime)和服務器的錯誤日志來檢查是否服務器確實消失了。??
? ? ? ?查看MySQL的正常運行時間(uptime):
show global status like 'uptime';?
? ? ?查詢錯誤日志的存儲位置,然后打開錯誤日志,根據日志記錄,確認是否存在服務器宕機。
? ? ?查詢錯誤日志的存儲位置:
show variables like '%error';? ? ?
? ? ? ?如果MySQL服務器確實消失了,它是關閉了還是崩潰了,MySQL的錯誤日志會提供答案。通常MySQL的守護程序(mysqld)將由mysqld_safe包裝器進程重新啟動。
?2. 連接超時
? ? ?查看各項連接時間:
show global variables like '%timeout';
? ? ? 這些值是相對是MySQL的默認值,但是如果你的超時時間很短,則可能會出現這個錯誤,比如:
3. 你的SQL語句被殺死了
? ? ?有些系統會主動殺死運行時間過長的SQL語句,我們可以通過查看已經執行的kill語句數量來檢查是否可能發生這種情況。
? ? ?查看mysql請求連接進程被主動殺死:
show global? status like 'com_kill';
4. 你的SQL語句太大了
? ? ?稍微難以測試和驗證,但是MySQL使用最大數據包站站點進行服務器和客戶端之間的通信。如果語句包含大字段,則可能由于SQL語句的大小,而被中止。
? ? ? 我們可以通過語句查看一下允許的最大包大?。?/b>
show global variables like 'max_allowed_packet';? ?(1024*1024*5=5242880)
? ? ?如果值比較小,可以設置大一點:
set global max_allowed_packet=1024*1024*16;
?如果修改后不夠大,可以繼續加大。
? ? 注:通過命令行設置的大小僅對本次的有效,重啟后就會回歸原始值。通過修改配置文件(my.ini)則可以永久的設置參數