轉自http://www.51testing.com/html/76/428076-819055.html html
1 網上說要改mysql的my.ini文件。沒看到對應的文件啊。看到MySQL Server 5.5目錄下有六個ini,分別是my-huge.ini,......,my-template.ini。到mysql的官網也敲了點,感受是會讀取c:\windows下,或者 mysql當前目錄的my.ini。因而本身更名存在的ini,放到對應的目錄上。重啓mysql.sh。改動的配置無效。悲劇。mysql
2 又看到一種改動方法,sql
set global max_allowed_packet = 2*1024*1024*10windows
運行試了下,而後再經過命令show VARIABLES like '%max_allowed_packet%';查看。測試
果真行。spa
同時,也測試了下重啓mysql後的狀況,一樣悲劇。重啓mysql後,max_allowed_packet又回到初始值1M了。htm
3 分析了整個過程,以爲應該首先拿到mysql讀取my.ini的位置。第一種方法應該沒問題,我改了全部的配置ini對應項,同時把my.ini放到多個位置,一直沒效果。應該問題出在沒有放對my.ini。本機是win 7系統,也想到了是否跟文件重定向有關係。get
以前測試時一直用processMon.exe來定位文件讀寫。因而,用processMon看了下,果真mysql讀的my.ini文件位置爲C:\ProgramData\MySQL\MySQL Server 5.5\my.ini。把 max_allowed_packet=16M,加到此文件中[mysqld]後,重啓mysql,經過命令show VARIABLES like '%max_allowed_packet%';查看生效了。io
mysql> show variables like '%max_allowed_packet%';
+--------------------------+------------+
| Variable_name | Value |
+--------------------------+------------+
| max_allowed_packet | 16777216 |
| slave_max_allowed_packet | 1073741824 |
+--------------------------+------------+
2 rows in set (0.00 sec)test