標籤:my.cnf
[client]default-character-set = utf8mb4[mysql]#開啟 tab 補全#auto-rehashdefault-character-set = utf8mb4[mysqld]port=3306basedir=/data/server/mysql57/datadir=/data/server/mysql57/data/socket=/data/server/mysql57/data/mysql.socksymbolic-links=0log-error=/data/logs/mysql57/mysqld.logpid-file=/data/server/mysql57/data/mysqld57.pid# 禁用主機名稱解析skip-name-resolve# 預設的資料庫引擎default-storage-engine = InnoDBinnodb-file-per-table=1innodb_force_recovery = 1#一些坑group_concat_max_len = 10240sql_mode=expire_logs_days = 7memlock### 字元集配置character-set-client-handshake = FALSEcharacter-set-server = utf8mb4collation-server = utf8mb4_unicode_ciinit_connect='SET NAMES utf8mb4'### GTIDserver_id = 330759# 為保證 GTID 複製的穩定, 行級日誌binlog_format = row# 開啟 gtid 功能gtid_mode = on# 保障 GTID 事務安全# 當啟用enforce_gtid_consistency功能的時候,# MySQL只允許能夠保障事務安全, 並且能夠被日誌記錄的SQL語句被執行,# 像create table ... select 和 create temporarytable語句, # 以及同時更新事務表和非事務表的SQL語句或事務都不允許執行enforce-gtid-consistency = true# 以下兩條配置為主從切換, 資料庫高可用的必須配置# 開啟 binlog 日誌功能log_bin = mysql57-bin # 開啟從庫更新 binlog 日誌log-slave-updates = on#slave複製進程不隨mysql啟動而啟動skip_slave_start=1### 慢查詢日誌# 開啟慢查詢日誌功能slow_query_log = 1# 超過2秒的查詢記錄下來long_query_time = 2# 記錄下沒有使用索引的查詢log_queries_not_using_indexes = 0slow_query_log_file =/data/logs/mysql57/slow.log#log=/data/logs/mysql57/all.log### 自動修複# 記錄 relay.info 到資料表中relay_log_info_repository = TABLE# 記錄 master.info 到資料表中 master_info_repository = TABLE# 啟用 relaylog 的自動修複功能relay_log_recovery = on# 在 SQL 線程執行完一個 relaylog 後自動刪除relay_log_purge = 1### 資料安全性配置# wei關閉 master 建立 function 的功能log_bin_trust_function_creators = on# 每執行一個事務都強制寫入磁碟sync_binlog = 1# timestamp 列如果沒有顯式定義為 not null, 則支援null屬性# 設定 timestamp 的列值為 null, 不會被設定為 current timestampexplicit_defaults_for_timestamp=true### 最佳化配置# 最佳化中文全文模糊索引ft_min_word_len = 1# 預設庫名表名儲存為小寫, 不區分大小寫lower_case_table_names = 1# 單條記錄寫入最大的大小限制# 過小可能會導致寫入(匯入)資料失敗max_allowed_packet = 256M# 半同步複製開啟#rpl_semi_sync_master_enabled = 1#rpl_semi_sync_slave_enabled = 1# 半同步複製逾時時間設定#rpl_semi_sync_master_timeout = 1000# 複製模式(保持系統預設)#rpl_semi_sync_master_wait_point = AFTER_SYNC# 後端只要有一台收到日誌並寫入 relaylog 就算成功#rpl_semi_sync_master_wait_slave_count = 1# 多線程複製# 基於組提交的並行複製方式slave_parallel_type = logical_clock#並行的SQL線程數量,此參數只有設定 1<N的情況下才會才起N個線程進行SQL重做。#經過測試對比發現, 如果主庫的連接線程為M, 只有M < N的情況下, 備庫的延遲才可以完全避免。slave_parallel_workers = 4### 串連數限制max_connections = 1500# 驗證密碼超過20次拒絕串連max_connect_errors = 200# back_log值指出在mysql暫時停止回答新請求之前的短時間內多少個請求可以被存在堆棧中# 也就是說,如果MySql的串連數達到max_connections時,新來的請求將會被存在堆棧中# 以等待某一串連釋放資源,該堆棧的數量即back_log,如果等待串連的數量超過back_log# 將不被授予串連資源back_log = 500open_files_limit = 65535# 伺服器關閉互動式串連前等待活動的秒數interactive_timeout = 3600# 伺服器關閉非互動串連之前等待活動的秒數wait_timeout = 3600### 記憶體配置# 指定表快取的大小。每當MySQL訪問一個表時,如果在表緩衝區中還有空間# 該表就被開啟並放入其中,這樣可以更快地訪問表內容table_open_cache = 1024# 為每個session 分配的記憶體, 在事務過程中用來儲存二進位日誌的緩衝binlog_cache_size = 4M# 在記憶體的暫存資料表最大大小tmp_table_size = 128M# 建立記憶體表的最大大小(保持系統預設, 不允許建立過大的記憶體表)# 如果有需求當做緩衝來用, 可以適當調大此值max_heap_table_size = 16M# 順序讀, 讀入緩衝區大小設定# 全表掃描次數多的話, 可以調大此值read_buffer_size = 1M# 隨機讀, 讀入緩衝區大小設定read_rnd_buffer_size = 8M# 高並發的情況下, 需要減小此值到64K-128Ksort_buffer_size = 1M# 每個查詢最大的緩衝大小是1M, 最大緩衝64M 資料query_cache_size = 64Mquery_cache_limit = 1M# 提到 join 的效率join_buffer_size = 16M# 線程串連重複利用thread_cache_size = 64### InnoDB 最佳化## 記憶體利用方面的設定# 資料緩衝區innodb_buffer_pool_size=2G## 日誌方面設定# 交易記錄大小innodb_log_file_size = 256M# 日誌緩衝區大小innodb_log_buffer_size = 4M# 事務在記憶體中的緩衝innodb_log_buffer_size = 3M# 主庫保持系統預設, 事務立即寫入磁碟, 不會丟失任何一個事務innodb_flush_log_at_trx_commit = 1# mysql 的資料檔案設定, 初始100, 以10M 自動擴充#innodb_data_file_path = ibdata1:100M:autoextend# 為提高效能, MySQL可以以迴圈方式將記錄檔寫到多個檔案innodb_log_files_in_group = 3##其他設定# 如果庫裡的表特別多的情況,請增加此值#innodb_open_files = 800# 為每個 InnoDB 表分配單獨的資料表空間innodb_file_per_table = 1# InnoDB 使用後台線程處理資料頁上寫 I/O(輸入)請求的數量innodb_write_io_threads = 8# InnoDB 使用後台線程處理資料頁上讀 I/O(輸出)請求的數量innodb_read_io_threads = 8# 啟用單獨的線程來回收無用的資料innodb_purge_threads = 1# 髒資料刷入磁碟(先保持系統預設, swap 過多使用時, 調小此值, 調小後, 與磁碟互動增多, 效能降低) innodb_max_dirty_pages_pct = 90# 事務等待擷取資源等待的最長時間innodb_lock_wait_timeout = 120# 開啟 InnoDB 嚴格檢查模式, 不警告, 直接報錯 1開啟 0關閉innodb_strict_mode=1# 允許列索引最大達到3072 innodb_large_prefix = on[mysqldump]# 開啟快速匯出quickdefault-character-set = utf8mb4max_allowed_packet = 256M
MySQL 5.7 my.cnf設定檔說明