Mysql Errcode: 24 - Too many open files
?? ?Out of resources when opening file '**.MYD' (Errcode: 24 - Too many open files)
今天測試數(shù)據(jù)庫出現(xiàn)鏈接一打開表就報上面這個錯?
首先給出解決方案:
?flush tables;//命令將會清空當(dāng)前所有緩存的表。
set global table_open_cache=214;//釋放緩存的文件數(shù)。
比較適合的值:
Open_tables / Opened_tables >= 0.85
Open_tables / table_open_cache <= 0.95
show global status like 'open_%';//這個是查看全局被打開的狀態(tài),下面那條就是查看表的
SHOW GLOBAL STATUS LIKE 'open%tables';//查看被打開表數(shù)及被打開過的表數(shù)。
其中open_tables表示當(dāng)前打開的table總和,即所有connection打開的table總數(shù)。
opened_tables表示打開過的表的數(shù)量總和,只有show global status才能看到它的值。這是個計數(shù)器,Opened_tables/Uptime的值過大說明table_open_cache過小,導(dǎo)致一些table對象(即下文說的table對象)經(jīng)常會刷出server層,需要的時候再創(chuàng)建,最終導(dǎo)致此計數(shù)過大。
?? ?show variables like 'table%‘;?//展示參數(shù)設(shè)置表高速緩存的數(shù)目。
每個連接進來,都會至少打開一個表緩存,如果在表緩沖區(qū)中還有空間,該表就被打開并放入其中,這樣可以更快地訪問表內(nèi)容。因此, table_open_cache的大小應(yīng)與 max_connections 的設(shè)置有關(guān)。
? ? ? ? ?例如,對于 200 個并行運行的連接,應(yīng)該讓表的緩存至少有 200 × N ,這里 N 是應(yīng)用可以執(zhí)行的查詢的一個聯(lián)接中表的最大數(shù)量。此外,還需要為臨時表和文件保留一些額外的文件描述符。
show global variables like 'max_connections';//這是是查詢數(shù)據(jù)庫當(dāng)前設(shè)置的最大連接數(shù)
?? ??? ??? ??? ?
總結(jié)
以上是生活随笔為你收集整理的Mysql Errcode: 24 - Too many open files的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端数据可视化可绘制地图等插件:High
- 下一篇: 让外网访问内网Ngrok工具