#其他默認調整值 #MySQL Server實體組態檔 # ------------------------------------------------------------------------------------------------------------------------------------------------------------- #由MySQL Server實體配置向導生成 # # #安裝說明 # ------------------------------------------------------------------------------------------------------------------------------------------------------------- # #在Linux上,您可以將此檔案復制到/etc/my.cnf以設定全域選項, #mysql-data-dir/my.cnf設定服務器特定選項(用于此安裝的@localstatedir@)或~/.my.cnf設定特定于用戶的選項, # #在Windows上,當使用MySQL安裝程式安裝MySQL時應該將此檔案保存在服務器的ProgramData目錄中(例如C:\ProgramData\MySQL\MySQL-Server X.Y),為了確保服務器讀取配置文 件,使用啟動選項“--defaults file”, # #要從命令列運行服務器,請在命令列shell,例如, # mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini" # #若要手動將服務器作為Windows服務安裝,請在命令列shell,例如, # mysqld --install MySQLXY --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini" # #然后在命令列shell中執行此操作以啟動服務器,例如, # net start MySQLXY # # #編輯此檔案的準則-- # ------------------------------------------------------------------------------------------------------------------------------------------------------------- # #在此檔案中,您可以使用程式支持的所有長選項,如果您想知道程式支持的選項,請啟動該程式使用“--help”選項, #有關各個選項的更詳細資訊也可以在手冊中找到, #有關如何更改設定的建議,請參閱 https://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html # # #客戶端部分 # ------------------------------------------------------------------------------------------------------------------------------------------------------------- # #MySQL客戶端應用程式將讀取以下選項, #請注意,只有MySQL提供的客戶端應用程式才有保證閱讀本節,如果您希望自己的MySQL客戶端程式遵守這些值,您需要在MySQL客戶端庫初始化 # [client]
# pipe=
# socket=MYSQL
port=7070
[mysql] no-beep
# default-character-set=
#服務器部分 # ------------------------------------------------------------------------------------------------------------------------------------------------------------- # #MySQL Server將讀取以下選項,確保您已經正確安裝了服務器(請參閱上文),因此它會讀取以下內容檔案, # # server_type=3 [mysqld]
#以下三個選項對SERVER_PORT來說是互斥的, #跳過網路 #啟用命名管道 #共享存盤器
# shared-memory-base-name=MYSQL
#MySQL服務器將使用的管道, # socket=MYSQL
#在MySQL Server創建的命名管道上授予客戶端的訪問控制, # named-pipe-full-access-group=
#MySQL服務器將偵聽的TCP/IP埠 port=7070
#安裝目錄的路徑,所有路徑通常都相對于此進行決議, # basedir="C:/Program Files/MySQL/MySQL Server 8.0/"
#資料庫根目錄的路徑 datadir=C:/ProgramData/MySQL/MySQL Server 8.0\Data
#當新架構或表已創建,但未定義字符集 # character-set-server=
#管理多因素身份驗證(MFA)功能,它適用于身份驗證用于管理MySQL帳戶的CREATE USER和ALTER USER陳述句的因子相關子句定義,其中“factor”對應于關聯的身份驗證方法或插件 有賬戶, authentication_policy=*,,
#在以下情況下創建新表時將使用的默認存盤引擎 default-storage-engine=INNODB
#當前服務器SQL模式,可以動態設定, #模式會影響MySQL支持的SQL語法及其執行的資料驗證檢查,這使MySQL更容易在不同的環境中使用,并更容易與其他環境一起使用資料庫服務器, sql-mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
#常規和慢速日志記錄, log-output=FILE
general-log=0
general_log_file="LAPTOP-CLPA8D3C.log"
slow-query-log=1
slow_query_log_file="LAPTOP-CLPA8D3C-slow.log"
long_query_time=10
#錯誤日志記錄, log-error="LAPTOP-CLPA8D3C.err"
#*****與組復制相關***** #指定要用于二進制日志檔案的基本名稱,使用二進制日志記錄啟用后,服務器會記錄所有將資料更改為二進制的陳述句日志,用于備份和復制, log-bin="LAPTOP-CLPA8D3C-bin"
#*****與組復制相關***** #指定服務器ID,對于復制拓撲中使用的服務器,必須在中為每個復制服務器指定一個唯一的服務器ID#范圍從1到2^32?1,“唯一”表示每個ID必須不同 #來自任何其他源或復制副本正在使用的每個其他ID, server-id=1
#指示表和資料庫名稱如何存盤在磁盤上并在MySQL中使用, #值0=表和資料庫名稱使用CREATE Table或CREATE database陳述句中指定的字母大小寫存盤在磁盤上,名稱比較區分大小寫,如果您在具有不區分大小寫的檔案名的系統(如Windows或macOS)上運行MySQL,則不應將此變數設定為0,如果在不區分大小寫的檔案系統上,使用--lower-case-table-names=0將此變數強制設定為0,并使用不同的字母大小寫訪問MyISAM表名,則可能會導致索引損壞, #值1=表名稱以小寫形式存盤在磁盤上,名稱比較不區分大小寫,MySQL在存盤和查找時將所有表名轉換為小寫,此行為也適用于資料庫名稱和表別名, #值2=表和資料庫名稱使用CREATE Table或CREATE database陳述句中指定的字母大小寫存盤在磁盤上,但MySQL在查找時會將其轉換為小寫,名稱比較不區分大小寫,InnoDB表名和視圖名以小寫形式存盤,如lower_case_table_names=1, lower_case_table_names=1
#此變數用于限制資料匯入和匯出操作的效果,例如由LOAD DATA和SELECT…執行,,,INTO OUTFILE陳述句和LOAD_FILE()函式,這些操作僅允許具有FILE權限的用戶執行, secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads"
#MySQL服務器將執行的最大并發會話數允許,其中一個連接將保留給具有允許管理員登錄的超級權限,即使已達到連接限制, max_connections=151
#所有執行緒打開的表數,增加該值會增加數字mysqld所需的檔案描述符的數量, table_open_cache=4000
#定義TempTable可以占用的最大記憶體量存盤引擎在開始將資料存盤在磁盤上之前, temptable_max_ram=1G
#定義創建的內部記憶體臨時表的最大大小通過MEMORY存盤引擎,以及從MySQL 8.0.28起的TempTable存盤發動機,如果記憶體中的內部臨時表超過此大小,則為自動轉換為磁盤上的內 #部臨時表, tmp_table_size=75M
#記憶體內部臨時表的存盤引擎(參見第8.4.4節“內部臨時表在MySQL中使用”),允許的值為TempTable(默認值)和MEMORY, internal_tmp_mem_storage_engine=TempTable
#***MyISAM特定選項 #MySQL在重新創建時允許使用的臨時檔案的最大大小MyISAM索引(在REPAIR TABLE、ALTER TABLE或LOAD DATA期間),如果檔案大小為如果大于該值,則使用鍵快取來創建索引, #這會比較慢,該值以位元組為單位, myisam_max_sort_file_size=2146435072
#在REPAIR TABLE期間對MyISAM索引進行排序時分配的緩沖區大小或者使用CREATE INDEX或ALTER TABLE創建索引時, myisam_sort_buffer_size=141M
#密鑰緩沖區的大小,用于快取MyISAM表的索引塊,不要將其設定為大于可用記憶體的30%,作為某些記憶體也是OS快取行所需要的,即使你不使用MyISAM表,您仍然應該將其設定為 #8-64M,因為它也將是用于內部臨時磁盤表, key_buffer_size=8M
#對MyISAM表進行順序掃描的每個執行緒都會分配一個緩沖區,它掃描的每個表的大小(以位元組為單位),如果你做許多連續的掃描時,您可能希望增加此值,默認值為131072,這 #個變數的值應該是4KB的倍數,如果設定為某個值不是4KB的倍數,其值四舍五入到最接近的倍數高達4KB, read_buffer_size=128K
#此變數用于從MyISAM表中讀取,對于任何存盤引擎,用于多范圍讀取優化, read_rnd_buffer_size=256K
#***INNODB特定選項*** # innodb_data_home_dir=
#如果您的MySQL服務器已啟用InnoDB支持,請使用此選項,但您不打算使用它,這將節省記憶體和磁盤空間并且加快一些事情, # skip-innodb
#如果設定為1,InnoDB將把事務日志重繪(fsync)到磁盤,這提供了完整的ACID行為,如果你是愿意在安全問題上妥協,而你卻跑得很小事務,您可以將其設定為0或2以將磁盤 #I/O減少到日志,值0表示日志僅寫入日志檔案,并且日志檔案大約每秒重繪一次,值2意味著每次提交時都會將日志寫入日志檔案,但日志 #大約每秒只將檔案重繪到磁盤一次, innodb_flush_log_at_trx_commit=1
#InnoDB用于寫入日志檔案的緩沖區的大小(以位元組為單位)磁盤,隨著32KB的引入,默認值從8MB更改為16MB和64KB的innodb_ page_ size值,大型日志緩沖區可實作大型事務 #在事務提交之前無需將日志寫入磁盤即可運行,因此,如果您有更新、插入或洗掉許多行的事務日志緩沖區越大,節省磁盤I/O, innodb_log_buffer_size=16M
#緩沖池的大小(以位元組為單位),InnoDB快取表的記憶體區域以及索引資料,默認值為134217728位元組(128MB),最大值取決于CPU架構;在32位系統上,最大值為4294967295 #(232-1)以及在64位系統上的18446744073709551615(264-1),在32位系統上,CPU體系結構和作業系統可以施加比規定的最大值,當緩沖池的大小大于1GB時,設定 #innodb_buffer_pool_instances的值大于1可以提高上的可伸縮性繁忙的服務器, innodb_buffer_pool_size=128M
#定義重做日志檔案所占用的磁盤空間量,此變數取代innodb_log_files_i_group和innodb_og_file_size變數, innodb_redo_log_capacity=100M
#定義InnoDB內部允許的最大執行緒數,A值0的(默認值)被解釋為無限并發(無限制),這變數用于高并發系統上的性能調優, #InnoDB試圖保持InnoDB內部的執行緒數小于或等于innodb_thread_concurrency限制,一旦達到極限,就會有額外的執行緒被放入等待執行緒的“先進先出”(FIFO)佇列中,執行緒等待鎖不 #計入并發執行的執行緒數, innodb_thread_concurrency=25
#當自動擴展InnoDB系統表空間檔案變滿時,用于擴展其大小的增量大小(MB), innodb_autoextend_increment=64
#InnoDB緩沖池被劃分為的區域數, #對于緩沖池在千兆位元組范圍內的系統,將緩沖池劃分為單獨的實體可以提高并發性,通過減少不同執行緒讀取和寫入快取頁面時的爭用, innodb_buffer_pool_instances=8
#確定可以同時進入InnoDB的執行緒數, innodb_concurrency_tickets=5000
#指定插入到舊子串列中的塊在其第一次訪問之后必須停留在那里的時間(以毫秒為單位)可以將其移動到新的子串列中, innodb_old_blocks_time=1000
#當啟用該變數時,InnoDB會在元資料陳述句期間更新統計資訊, innodb_stats_on_metadata=https://www.cnblogs.com/dabao150114/archive/2023/06/29/0
#當innodb_file_per_table被啟用時(5.6.6及更高版本中的默認值),innodb存盤每個新創建的表的資料和索引在一個單獨的.ibd檔案中,而不是在系統表空間中, innodb_file_per_table=1
#使用以下值串列:0表示crc32,1表示strict_crc32,2表示innodb,3表示strict_innodb,4表示none,5表示strict_none, innodb_checksum_algorithm=0
#如果將其設定為非零值,則每flush_time秒關閉所有表以釋放資源和將未重繪的資料同步到磁盤,此選項最好僅用于資源最少的系統, flush_time=0
#用于普通索引掃描、范圍索引掃描和不使用的聯接的緩沖區的最小大小索引,從而執行全表掃描, join_buffer_size=256K
#一個資料包或任何生成或中間字串的最大大小,或由mysql_stmt_send_long_data()C API函式, max_allowed_packet=64M
#如果在沒有成功連接的情況下中斷了來自主機的超過這個數量的連續連接請求,服務器阻止該主機執行進一步的連接, max_connect_errors=100
#作業系統中可用于mysqld的檔案描述符數如果mysqld給出錯誤“打開的檔案太多”,請嘗試增加此選項的值, open_files_limit=8161
#如果在SHOW GLOBAL STATUS輸出中每秒看到許多sort_merge_passes,可以考慮增加sort_buffer_size值以加快查詢優化無法改進的ORDER BY或GROUP BY操作 #或改進的索引, sort_buffer_size=256K
#指定基于行的二進制日志事件的最大大小(以位元組為單位),如果可能,行被分組為小于此大小的事件,該值應該是256的倍數, binlog_row_event_max_size=8K
#如果此變數的值大于0,則副本會將其master.info檔案同步到磁盤, 在每次sync_source_info事件之后使用 fdatasync(), sync_source_info=10000
#如果此變數的值大于0,MySQL服務器會將其中繼日志同步到磁盤, 在每次sync_relay_log寫入中繼日志之后使用 fdatasync(), sync_relay_log=10000
#如果此變數的值大于0,則復制副本會將其relay-log.info檔案同步到磁盤, 在每個sync_relay_log_info事務之后使用 fdatasync(), sync_relay_log_info=10000
#一開始就加載mysql插件,"plugin_x ; plugin_y". # plugin_load
#MySQL Server X協議將偵聽的TCP/IP埠, loose_mysqlx_port=33060
|