国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

輕松解決Mysql“信息包過大”的處理方法

2019-09-08 23:26:53
字體:
來源:轉載
供稿:網友

通信信息包是發送至MySQL服務器的單個SQL語句,或發送至客戶端的單一行。

在MySQL 5.1服務器和客戶端之間最大能發送的可能信息包為1GB。

當MySQL客戶端或mysqld服務器收到大于max_allowed_packet字節的信息包時,將發出“信息包過大”錯誤,并關閉連接。對于某些客戶端,如果通信信息包過大,在執行查詢期間,了能回遇到“丟失與MySQL服務器的連接”錯誤。

客戶端和服務器均有自己的max_allowed_packet變量,因此,如你打算處理大的信息包,必須增加客戶端和服務器上的該變量。

如果你正在使用mysql客戶端程序,其max_allowed_packet變量的默認值為16MB。要想設置較大的值,可用下述方式啟動mysql:

mysql> mysql --max_allowed_packet=32M

它將信息包的大小設置為32MB。

服務器的默認max_allowed_packet值為1MB。如果服務器需要處理大的查詢,可增加該值(例如,如果準備處理大的BLOB列)。例如,要想將該設置為16MB,可采用下述方式啟動服務器:

mysql> mysqld --max_allowed_packet=16M

也能使用選項文件來設置max_allowed_packet。要想將服務器的該變量設置為16MB,可在選項文件中增加下行內容:

[mysqld]
max_allowed_packet=16M

增加該變量的值十分安全,這是因為僅當需要時才會分配額外內存。例如,僅當你發出長查詢或mysqld必須返回大的結果行時mysqld才會分配更多內存。該變量之所以取較小默認值是一種預防措施,以捕獲客戶端和服務器之間的錯誤信息包,并確保不會因偶然使用大的信息包而導致內存溢出。

如果你正是用大的BLOB值,而且未為mysqld授予為處理查詢而訪問足夠內存的權限,也會遇到與大信息包有關的奇怪問題。如果懷疑出現了該情況,請嘗試在mysqld_safe腳本開始增加ulimit -d 256000,并重啟mysqld。

MYSQL

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 虞城县| 巴塘县| 安阳县| 茌平县| 彰化县| 汉源县| 京山县| 峡江县| 南汇区| 揭西县| 夹江县| 苏尼特右旗| 文昌市| 千阳县| 无极县| 广灵县| 石城县| 丽水市| 富锦市| 金平| 南部县| 兰溪市| 耒阳市| 陇西县| 石台县| 闽清县| 南郑县| 仙居县| 大港区| 阿坝县| 富川| 元氏县| 江达县| 乌什县| 黔南| 南溪县| 兰州市| 穆棱市| 阳东县| 宁津县| 米林县|