/etc/my.cnf.d/server.cnf
[mysqld] 設定
1.資料庫大小寫判斷
lower_case_table_name = 1
#預設值為0(Linux),資料庫名大小寫為不同字。
#設定值為1(Windows),資料庫名自動轉為小寫。SQL語法自動判斷為小寫。
#設定值為2(Max OS),資料庫名有分大小寫。SQL語法自動判斷為小寫。
2.最大連線數
max_connection = 1000
#預設值為20
3.最大開啟檔案數
open_files_limit = 43000
#預設值為1024,下面為Mysql的預設公式
1) 10 + max_connections + (table_open_cache * 2) 2) max_connections * 5 3) open_files_limit value specified at startup, 5000 if none |
4.開啟排程功能
event_scheduler = ON
5.
table_open_cache_instances=2
table_open_cache=16384
table_definition_cache=16384
6.暫存表跟Join的大小
tmp_table_size=64M
join_buffer_size=10M #預設值是128,記憶體越大可以給越多
7.提供給innodb引擎的快取RAM,簡單來說就是把資料全部放到RAM中加快搜尋
innodb_buffer_pool_size = 16G
#通常給RAM的2/3左右(純資料庫環境,有其他服務請下降)
8.停用DNS解析,除非你的帳號有設定電腦名而不是IP,關掉可以減少登入的時間
skip-name-resolve
# "User"@"
電腦名"
9.下面3項是早期的建議,不知道新版有沒有改掉
max_connect_errors = 1844674407370954751
#當連線失敗(像是網路不穩造成TIMEOUT)的次數到達設定的次數時,所有人禁止連線資料庫
connect_timeout = 20
#超過多少時間後,連線失敗
slave_net_timeout = 3010.快取功能關閉
query_cache_type = 0
query_cache_size = 0
#這個快取會將你查詢的資料記錄在快取中,如果有重複的話可以加快處理,但只要資料表有修改這個資料就會失效,所以你如果都是讀取很多寫入很少有用,但大量讀寫時...一點意義都沒有
11.預設UTP-8
[client] <-/etc/my.cnf
...
default-character-set=utf8mb4
...
[mysql] <- etc/my.cnf.d/mysql-clients.cnf
...
default-character-set=utf8mb4
...
[mysqld] <- /etc/my.conf.d/server.cnf
...
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4