自己配置的XWAMP環境,默認下沒有詳細配置mysql的my.ini,一方面不同服務器的配置不一樣,另一方面按照默認為空的方式也一直沒有出現過問題。不過最近服務器掛掉了,出現的症狀是:
網站不能打開,動態的。靜態的可以。
不能遠程桌面。
強制重啟服務器后查看系統日志發現了這個錯誤:
mysqld: Out of memory (Needed 129040 bytes)
於是找到了mariadb根目錄中有幾個推薦配置文件:
my-small.ini:內存小於64M。
my-medium.ini:內存在32M - 64M之間。
my-large.ini:內存為512M。
my-huge.ini:內存在1G-2G之間
my-innodb-heavy-4G.ini:內存4GB,僅使用innodb存儲引擎。
掛掉的服務器是2核(CPU)2GB(內存),選擇了my-large.ini的推薦配置,增加了如下配置(放在[mysqld]下):
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
thread_concurrency = 4
應該沒有問題了吧。前端提示用戶升級IE瀏覽器代碼:快樂瀏覽(http://browsehappy.osfipin.com/)。win2008錯誤事件截圖(好吧 我是用的windows做服務器的,囧):
以上為解決mysqld: Out of memory問題的思路。