1 [mysqld]
2 server-id=513306 # Mysql唯一標識,一個集群中唯一;
3 port=3306 # 服務端口,默認3306
4 user = mysql # 啟動用戶,建議用戶mysql
5 bind_address= 0.0.0.0 # 綁定的IP地址,建議使用具體地址
6 basedir=/mysql/app/mysql # mysql安裝路徑,建議使用絕對路徑
7 datadir=/mysql/data/3306/data # 數據目錄
8 socket=/mysql/data/3306/mysql.sock # 指定套接字文件
9 pid-file=/mysql/data/3306/mysql.pid # 指定pid文件
10 character-set-server=utf8 # 指定默認編碼格式
11 skip-character-set-client-handshake=1 #
12 autocommit = 0 # 是否開啟自動提交, 0:不開啟嗎1:開啟
13 #skip_name_resolve = 1
14 max_connections = 800 # 最大連接數
15 max_connect_errors = 1000 # 最大連接錯誤
16 default-storage-engine=INNODB # 設置默認引擎,常用引擎INNODB,MYISAN,建議使用INNODB
17 transaction_isolation = READ-COMMITTED # 事務隔離級別,可選參數有:READ-UNCOMMITTED(讀取未提交內容), READ-COMMITTED(讀取提交內容), REPEATABLE-READ(可重讀), SERIALIZABLE(可串行化).
18 explicit_defaults_for_timestamp = 1 # 參數是否初始化
19 sort_buffer_size = 32M # 排序使用的緩存大小,MySQL5.7中,默認為1M(優化參數之一,一般情況下默認數值就夠用了)
20 join_buffer_size = 128M # join操作所用用的緩存大小
21 tmp_table_size = 72M # 臨時表大小
22 max_allowed_packet = 16M # 服務端最大允許接收的數據包大小
23 sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER" # mysql支持的基本語法及校驗規則
24 interactive_timeout = 1800 # 是MySQL在等待一個活動連接關閉連接前等待的秒數。默認28800秒,8小時
25 wait_timeout = 1800 # 是MySQL在等待一個非活動連接關閉連接前等待的秒數。默認28800秒,8小時
26 read_buffer_size = 16M # (數據文件存儲順序)是MySQL讀入緩沖區的大小,將對表進行順序掃描的請求將分配一個讀入緩沖區,MySQL會為它分配一段內存緩沖區,read_buffer_size變量控制這一緩沖區的大小,如果對表的順序掃描非常頻繁,並你認為頻繁掃描進行的太慢,可以通過增加該變量值以及內存緩沖區大小提高其性能,read_buffer_size變量控制這一提高表的順序掃描的效率 數據文件順序。
27 read_rnd_buffer_size = 32M # 是MySQL的隨機讀緩沖區大小,當按任意順序讀取行時(列如按照排序順序)將分配一個隨機讀取緩沖區,進行排序查詢時,MySQL會首先掃描一遍該緩沖,以避免磁盤搜索,提高查詢速度,如果需要大量數據可適當的調整該值,但MySQL會為每個客戶連接分配該緩沖區所以盡量適當設置該值,以免內存開銷過大。表的隨機的順序緩沖 提高讀取的效率。
28
29 #event_scheduler =1
30
31 query_cache_type = 1 # 控制着查詢緩存工能的開啟的關閉。0時表示關閉,1時表示打開,2表示只要select 中明確指定SQL_CACHE才緩存。
32 query_cache_size=1M # 查詢緩存大小, 一般 1M很夠用了
33 table_open_cache=2048 # 文件描述符的緩存大小,4G內存的機器,建議設置為2048,
34 thread_cache_size=768 # 線程池緩存大小,當客戶端斷開連接后 將當前線程緩存起來 當在接到新的連接請求時快速響應 無需創建新的線程
35 myisam_max_sort_file_size=10G # mysql重建索引時允許使用的臨時文件最大大小
36 myisam_sort_buffer_size=64M # MyISAM表發生變化時重新排序所需的緩沖。一般64M足矣。
37 key_buffer_size=32M # Key Buffer大小,用於緩存MyISAM表的索引塊。決定數據庫索引處理的速度(尤其是索引讀),對於內存在4GB左右的服務器該參數可設置為256M或384M。注意:該參數值設置的過大反而會是服務器整體效率降低!
38 read_buffer_size=8M # 用於對MyISAM表全表掃描時使用的緩沖區大小。針對每個線程進行分配(前提是進行了全表掃描)。進行排序查詢時,MySql會首先掃描一遍該緩沖,以避免磁盤搜索,提高查詢速度,如果需要排序大量數據,可適當調高該值。但MySql會為每個客戶連接發放該緩沖空間,所以應盡量適當設置該值,以避免內存開銷過大。
39 read_rnd_buffer_size=4M # 是MySQL的隨機讀緩沖區大小,當按任意順序讀取行時(列如按照排序順序)將分配一個隨機讀取緩沖區,進行排序查詢時,MySQL會首先掃描一遍該緩沖,以避免磁盤搜索,提高查詢速度,如果需要大量數據可適當的調整該值,但MySQL會為每個客戶連接分配該緩沖區所以盡量適當設置該值,以免內存開銷過大。表的隨機的順序緩沖 提高讀取的效率。
40
41 back_log=1024 # 值指出在MySQL暫時停止回答新請求之前的短時間內多少個請求可以被存在堆棧中。由默認的50,每個連接256kb
42 #flush_time=0
43 open_files_limit=65536 # MySQL打開了多少個文件描述符,默認最小1024
44 table_definition_cache=1400 # 表定義文件緩存相比表文件描述符緩存所消耗的內存更小,其默認值是400
45 #binlog_row_event_max_size=8K
46 # 有時候為了避免master.info和中繼日志崩潰,在容忍額外的fsync()帶來的開銷,推薦設置
47 #sync_master_info=10000 # 默認為10000,每間隔多少事務刷新master.info,如果是table(innodb)設置無效,每個事務都會更新,建議 設置為1
48 #sync_relay_log=10000 # 默認為10000,即每10000次sync_relay_log事件會刷新到磁盤。為0則表示不刷新,交由OS的cache控制,建議設置為1
49 #sync_relay_log_info=10000 # 默認為10000,每間隔多少事務刷新relay-log.info,建議設置為1
50
51 ########log settings########
52 log-output=FILE # 日志存儲方式,TABLE、FILE,建議設置為FILE,默認為FILE
53 general_log = 0 # 所有到達MySQL Server的SQL語句記錄下來。通用日志,不建議開啟,這個很消耗磁盤空間,用於優化及故障排查
54 general_log_file=/mysql/log/3306/itpuxdb-general.err # 指定通用日志文件
55 slow_query_log = ON # ON 為開啟慢查詢日志,off表示關閉慢查詢日志,用於優化SQL語句
56 slow_query_log_file=/mysql/log/3306/itpuxdb-query.err #指定慢查詢日志文件
57 long_query_time=10 # 指定多少秒返回查詢的結果為慢查詢
58 log-error=/mysql/log/3306/itpuxdb-error.err # 指定錯誤日志
59
60 log_queries_not_using_indexes = 1 # 開啟 記錄沒有使用索引查詢語句,1或者ON開啟,記錄至慢日志中
61 log_slow_admin_statements = 1 #記錄那些慢的optimize table,analyze table和alter table語句,1或者ON開啟,記錄至慢日志中
62 log_slow_slave_statements = 1 # 記錄由Slave所產生的慢查詢
63 log_throttle_queries_not_using_indexes = 10 # 設定每分鍾記錄到日志的未使用索引的語句數目,超過這個數目后只記錄語句數量和花費的總時間
64 expire_logs_days = 90 # 保留多少天
65 min_examined_row_limit = 100 # 對於查詢掃描行數小於此參數的SQL,將不會記錄到慢查詢日志中
66 #log_bin = "/log/bin_log/binlog"
67
68 ########replication settings########
69 #master_info_repository = TABLE # 值如果為FILE,建議將其修改為TABLE
70 #relay_log_info_repository = TABLE
71 #log_bin = bin.log
72 #sync_binlog = 1
73 #gtid_mode = on
74 #enforce_gtid_consistency = 1
75 #log_slave_updates
76 #binlog_format = row
77 #relay_log = relay.log
78 #relay_log_recovery = 1
79 #binlog_gtid_simple_recovery = 1
80 #slave_skip_errors = ddl_exist_errors
81
82 ########innodb settings########
83 # 根據您的服務器IOPS能力適當調整,只有當你在頻繁寫操作的時候才有意義
84 # 一般配普通SSD盤的話,可以調整到 10000 - 20000
85 # 配置高端PCIe SSD卡的話,則可以調整的更高,比如 50000 - 80000
86 innodb_io_capacity = 4000 # 動態調整刷新臟頁的數量,一般設置最大值的1/2
87 innodb_io_capacity_max = 8000 #動態調整刷新臟頁的最大數量
88 innodb_buffer_pool_size = 200M # 緩存池大小,默認128M,建議設置為總內存大小的,設置為物理內存的80%
89 innodb_buffer_pool_instances = 8 # 可以開啟多個內存緩沖池,把需要緩沖的數據hash到不同的緩沖池中,這樣可以並行的內存讀寫。
90 innodb_buffer_pool_load_at_startup = 1 # 默認為關閉OFF。如果開啟該參數,啟動MySQL服務時,MySQL將本地熱數據加載到InnoDB緩沖池中。
91 innodb_buffer_pool_dump_at_shutdown = 1 # 默認啟用。指定在MySQL服務器關閉時是否記錄在InnoDB緩沖池中緩存的頁面,以便在下次重新啟動時縮短預熱過程。
92 innodb_lru_scan_depth = 2000 # LRU列表中可用頁的數量,默認值為1024。
93 innodb_lock_wait_timeout = 5 # 事務鎖超時時間
94 #innodb_flush_method = O_DIRECT
95
96 innodb_log_file_size = 200M # mysql事務日志文件(ib_logfile0)的大小;
97 innodb_log_files_in_group = 2 # 指定你有幾個日志組。一般2-3個日值組。默認為兩個。
98 innodb_log_buffer_size = 16M # 事務在內存中的緩沖大小。
99
100 innodb_undo_logs = 128 # InnoDB使用的回滾段個數,必須設置35個以上;,默認128
101 innodb_undo_tablespaces = 3 # 是控制undo是否開啟獨立的表空間的參數,為0表示:undo使用系統表空間,即ibdata1,不為0表示:使用獨立的表空間,一般名稱為 undo001 undo002,存放地址的配置項為:innodb_undo_directory,默認配置為0,參數必須大於或等於2,即回收(收縮)一個undo log日志文件時,要保證另一個undo log是可用的。
102 innodb_undo_log_truncate = 1 # 參數設置為1,即開啟在線回收(收縮)undo log日志文件,支持動態設置。
103 innodb_max_undo_log_size = 2G # 每一個undo日志文件大小,默認1G
104
105 innodb_flush_neighbors = 1 # 刷臟頁的控制策略,參數就是用來控制這個行為的,值為 1 的時候會有上述的“連坐”機制,值為 0 時表示不找鄰居,自己刷自己的。建議設置為0
106 innodb_purge_threads = 4 # 負責回收已經使用並分配的undo頁,可以指定多個innodb_purge_threads來進一步加快和提高undo回收速度。
107 innodb_large_prefix = 1 # 單索引限制,是否開啟允許列索引最大達到3072,不開啟只有767
108 innodb_thread_concurrency = 64 # 來限制並發線程的數量
109 innodb_print_all_deadlocks = 1 # 是否開啟保存死鎖日志,死鎖日志存放到error_log配置的文件里面
110 innodb_strict_mode = 1 # InnoDB嚴格檢查模式,尤其采用了頁數據壓縮功能后,最好是開啟該功能。開啟此功能后,當創建表(CREATE TABLE)、更改表(ALTER TABLE)和創建索引(CREATE INDEX)語句時,如果寫法有錯誤,不會有警告信息,而是直接拋出錯誤,這樣就可直接將問題扼殺在搖籃
111 innodb_sort_buffer_size = 64M
112 innodb_flush_log_at_trx_commit=1 # sync_binlog 兩個參數是控制MySQL 磁盤寫入策略以及數據安全性的關鍵參數,當兩個參數都設置為1的時候寫入性能最差,但安全性最高,
113 # 設置為0,log buffer將每秒一次地寫入log file中,並且log file的flush(刷到磁盤)操作同時進行.該模式下,在事務提交的時候,不會主動觸發寫入磁盤的操作。
114 # 設置為1,每次事務提交時MySQL都會把log buffer的數據寫入log file,並且flush(刷到磁盤)中去.
115 # 設置為2,每次事務提交時MySQL都會把log buffer的數據寫入log file.但是flush(刷到磁盤)操作並不會同時進行。該模式下,MySQL會每秒執行一次 flush(刷到磁盤)操作。
116 innodb_autoextend_increment=64 # 默認 8M ,單位為M,配置表空間自動擴展,每次擴展多大M
117 innodb_concurrency_tickets=5000 # 這個參數設置為一種tickets,默認是5000,
118 innodb_old_blocks_time=1000 # 頁讀取到mid位置后,需要等待多久才會被加入到LRU列表的熱端。默認1000ms
119 innodb_open_files=65536 # 限制Innodb能打開的表的數據。
120 innodb_stats_on_metadata=0 # 是否自動更新統計信息,默認為0關閉,
121 innodb_file_per_table=1 # MySQL InnoDB引擎 默認會將所有的數據庫InnoDB引擎的表數據存儲在一個共享空間中:ibdata1,當增刪數據庫的時候,ibdata1文件不會自動收縮,單個數據庫的備份也將成為問題。通常只能將數據使用mysqldump 導出,然后再導入解決這個問題。如果啟用了innodb_file_per_talbe參數,需要注意的是每張表的表空間內存放的只是數據、索引和插入緩沖Bitmap頁,其他數據如:回滾信息、插入緩沖索引頁、系統事物信息、二次寫緩沖(Double write buffer)等還是放在原來的共享表空間內。同時說明了一個問題:即使啟用了innodb_file_per_table參數共享表空間還是會不斷的增加其大小的。
122 #innodb_checksum_algorithm=0 # 是否開啟checksum算法
123 innodb_data_file_path=ibdata1:200M;ibdata2:200M;ibdata3:200M:autoextend:max:5G #可配置表空間相關參數。
124 innodb_temp_data_file_path = ibtmp1:200M:autoextend:max:20G # 可配置臨時表空間相關參數。
125
126 innodb_buffer_pool_dump_pct = 40 # 指定每個緩沖池最近使用的頁面讀取和轉儲的百分比,1-100,默認25
127 innodb_page_cleaners = 4 # 多個頁面清理線程刷臟頁,用於指定頁面清理線程的數量。其默認值1,維持了之前單個頁面清理線程的配置
128 innodb_purge_rseg_truncate_frequency = 128 # 指定purge操作被喚起多少次之后才釋放rollback segments。當undo表空間里面的rollback segments被釋放時,undo表空間才會被truncate。由此可見,該參數越小,undo表空間被嘗試truncate的頻率越高。
129 binlog_gtid_simple_recovery=1 #這個變量用於在MySQL重啟或啟動的時候尋找GTIDs過程中,控制binlog 如何遍歷的算法?
130 #2. 當binlog_gtid_simple_recovery=FALSE 時:
131 # 為了初始化 gtid_executed,算法是: 從newest_binlog -> oldest_binlog 方向遍歷讀取,如果發現有Previous_gtids_log_event , 那么就停止遍歷
132 # 為了初始化 gtid_purged,算法是: 從oldest_binlog -> newest_binlog 方向遍歷讀取, 如果發現有Previous_gtids_log_event(not empty)或者 #至少有一個Gtid_log_event的文件,那么就停止遍歷
133 #3. 當binlog_gtid_simple_recovery=TRUE 時:
134 # 為了初始化 gtid_executed , 算法是: 只需要讀取newest_binlog
135 # 為了初始化 gtid_purged, 算法是: 只需要讀取oldest_binlog
136 #4. 當設置binlog_gtid_simple_recovery=TRUE , 如果MySQL版本低於5.7.7 , 可能會有gitd計算出錯的可能,具體參考官方文檔詳細描述
137 log_timestamps=system # 主要是控制 error log、slow_log、genera log,等等記錄日志的顯示時間參數,但不會影響 general log 和 slow log 寫到表 (mysql.general_log, mysql.slow_log) 中的顯示時間
138 #transaction_write_set_extraction=MURMUR32 # 基於WRITESET的並行復制方式
139 show_compatibility_56=on # mysql兼容性是否兼容mysql5.6,這是是開啟兼容
140
141
142 lower_case_table_names=1 # 是否區分大小寫 說明 0:區分大小寫,1:不區分大小寫
143 read_only=1 # 普通是否可讀, 0:關閉可讀, 1:開啟可讀
144 super_read_only=1 # 管理員(super)用戶是否可讀,超級可讀 ,0:關閉可讀, 1:開啟可讀
轉:https://www.cnblogs.com/small-wei/p/11993241.html