1. 程式人生 > >MySQL 8.0如何配置my.cnf

MySQL 8.0如何配置my.cnf

[client]

port = 3306
socket = /tmp/mysql.sock

[mysqld]

#Mysql服務的唯一編號 每個mysql服務Id需唯一
server-id = 1

#服務埠號 預設3306
port = 3306

#mysql安裝根目錄
basedir = /usr/local/mysql

#mysql資料檔案所在位置
datadir = /usr/local/mysql/data

#臨時目錄
tmpdir  = /tmp

#設定socke檔案所在目錄
socket = /tmp/mysql.sock

#主要用於MyISAM儲存引擎,如果多臺伺服器連線一個數據庫則建議註釋下面內容
skip-external-locking

#只能用IP地址檢查客戶端的登入,不用主機名
skip_name_resolve = 1

#事務隔離級別,預設為可重複讀,mysql預設可重複讀級別(此級別下可能引數很多間隙鎖,影響效能)
transaction_isolation = READ-COMMITTED

#資料庫預設字符集,主流字符集支援一些特殊表情符號(特殊表情符佔用4個位元組)
character-set-server = utf8mb4

#資料庫字符集對應一些排序等規則,注意要和character-set-server對應
collation-server = utf8mb4_general_ci

#設定client連線mysql時的字符集,防止亂碼
init_connect='SET NAMES utf8mb4'

#是否對sql語句大小寫敏感,1表示不敏感
lower_case_table_names = 1

#最大連線數
max_connections = 400

#最大錯誤連線數
max_connect_errors = 1000

#TIMESTAMP如果沒有顯示宣告NOT NULL,允許NULL值
explicit_defaults_for_timestamp = true

#SQL資料包傳送的大小,如果有BLOB物件建議修改成1G
max_allowed_packet = 128M


#MySQL連線閒置超過一定時間後(單位:秒)將會被強行關閉
#MySQL預設的wait_timeout  值為8個小時, interactive_timeout引數需要同時配置才能生效
interactive_timeout = 1800
wait_timeout = 1800

#內部記憶體臨時表的最大值 ,設定成128M。
#比如大資料量的group by ,order by時可能用到臨時表,
#超過了這個值將寫入磁碟,系統IO壓力增大
tmp_table_size = 134217728
max_heap_table_size = 134217728

#禁用mysql的快取查詢結果集功能
#後期根據業務情況測試決定是否開啟
#大部分情況下關閉下面兩項
query_cache_size = 0
query_cache_type = 0
#資料庫錯誤日誌檔案
log_error = error.log

#慢查詢sql日誌設定
slow_query_log = 1
slow_query_log_file = slow.log

#檢查未使用到索引的sql
log_queries_not_using_indexes = 1

#針對log_queries_not_using_indexes開啟後,記錄慢sql的頻次、每分鐘記錄的條數
log_throttle_queries_not_using_indexes = 5

#作為從庫時生效,從庫複製中如何有慢sql也將被記錄
log_slow_slave_statements = 1

#慢查詢執行的秒數,必須達到此值可被記錄
long_query_time = 8

#檢索的行數必須達到此值才可被記為慢查詢
min_examined_row_limit = 100

#mysql binlog日誌檔案儲存的過期時間,過期後自動刪除
expire_logs_days = 5