此配置是老男孩生產線上使用的配置,在培訓的時候,他給的,我在這里,對各參數添加了中文說明
這配置已經優化的不錯了,如果你的mysql沒有什么特殊情況的話,可以直接使用該配置參數
MYSQL服務器my.cnf配置文檔詳解
硬件:內存16G
[client]
port = 3306
socket = /data/3306/mysql.sock
[mysql]
no-auto-rehash
[mysqld]
user = mysql
port = 3306
socket = /data/3306/mysql.sock
basedir = /usr/local/mysql
datadir = /data/3306/data
open_files_limit = 10240
back_log = 600
#在MYSQL暫時停止響應新請求之前,短時間內的多少個請求可以被存在堆棧中。如果系統在短時間內有很多連接,則需要增大該參數的值,該參數值指定到來的TCP/IP連接的監聽隊列的大小。默認值50。
max_connections = 3000
#MySQL允許最大的進程連接數,如果經常出現Too Many Connections的錯誤提示,則需要增大此值。
max_connect_errors = 6000
#設置每個主機的連接請求異常中斷的最大次數,當超過該次數,MYSQL服務器將禁止host的連接請求,直到mysql服務器重啟或通過flush hosts命令清空此host的相關信息。
table_cache = 614
#指示表調整緩沖區大小。# table_cache 參數設置表高速緩存的數目。每個連接進來,都會至少打開一個表緩存。#因此, table_cache 的大小應與 max_connections 的設置有關。例如,對于 200 個#并行運行的連接,應該讓表的緩存至少有 200 × N ,這里 N 是應用可以執行的查詢#的一個聯接中表的最大數量。此外,還需要為臨時表和文件保留一些額外的文件描述符。
# 當 Mysql 訪問一個表時,如果該表在緩存中已經被打開,則可以直接訪問緩存;如果#還沒有被緩存,但是在 Mysql 表緩沖區中還有空間,那么這個表就被打開并放入表緩#沖區;如果表緩存滿了,則會按照一定的規則將當前未用的表釋放,或者臨時擴大表緩存來存放,使用表緩存的好處是可以更快速地訪問表中的內容。執行 flush tables 會#清空緩存的內容。一般來說,可以通過查看數據庫運行峰值時間的狀態值 Open_tables #和 Opened_tables ,判斷是否需要增加 table_cache 的值(其中 open_tables 是當#前打開的表的數量, Opened_tables 則是已經打開的表的數量)。即如果open_tables接近table_cache的時候,并且Opened_tables這個值在逐步增加,那就要考慮增加這個#值的大小了。還有就是Table_locks_waited比較高的時候,也需要增加table_cache。
external-locking = FALSE
#使用–skip-external-locking MySQL選項以避免外部鎖定。該選項默認開啟
max_allowed_packet = 32M
#設置在網絡傳輸中一次消息傳輸量的最大值。系統默認值 為1MB,最大值是1GB,必須設置1024的倍數。
新聞熱點
疑難解答