Mysql 配置文件常见配置
生活随笔
收集整理的這篇文章主要介紹了
Mysql 配置文件常见配置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Mysql 配置文件常見配置
[client] port = 3306 socket = /usr/local/mysql/mysql.sock default-character-set = utf8mb4[mysql] no-auto-rehash default-character-set = utf8mb4[mysqld] socket = /usr/local/mysql/mysql.sock character-set-server = utf8mb4 collation-server=utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' basedir = /usr/local/mysql datadir = /home/mysql/data sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES explicit_defaults_for_timestamp = true skip-ssl #secure-file-priv = /home/book/shell/mytools/practice lower_case_table_names = 1 #back_log = 300 #max_connections = 8000 #max_connect_errors = 100 #table_open_cache = 4096 external-locking = FALSE sort_buffer_size = 16M join_buffer_size = 16M thread_cache_size = 16 query_cache_size = 128M ft_min_word_len = 8 thread_stack = 512K transaction_isolation = REPEATABLE-READ #tmp_table_size = 128M #max_heap_table_size = 128M #binlog log-bin = mysql-bin binlog_format = mixed server-id = 1 read-only = 0#binlog-do-db = hello binlog-ignore-db = mysql binlog-ignore-db = information_schema binlog-ignore-db = performance_schema auto-increment-increment = 10 auto-increment-offset = 1#####slow query parameters####### long_query_time = 1 slow_query_log = on slow_query_log_file = /home/mysql/data/slow.logskip-host-cache skip-name-resolve# 在MYSQL暫時停止響應新請求之前,短時間內的多少個請求可以被存在堆棧中。 # 如果系統在短時間內有很多連接,則需要增大該參數的值, # 該參數值指定到來的TCP/IP連接的監聽隊列的大小。默認值50。 back_log = 600# MySQL的最大連接數,如果服務器的并發連接請求量比較大,建議調高此值 max_connections = 3000# 對于同一主機,如果有超出該參數值個數的中斷錯誤連接,則該主機將被禁止連接。 # 如需對該主機進行解禁,執行:FLUSH HOST max_connect_errors = 6000# MySQL打開的文件描述符限制,默認最小1024; open_files_limit = 65535# MySQL每打開一個表,都會讀入一些數據到table_open_cache緩存中, # 當MySQL在這個緩存中找不到相應信息時,才會去磁盤上讀取。默認值64. # 當把table_open_cache設置為很大時,如果系統處理不了那么多文件描述符, # 那么就會出現客戶端失效,連接不上 table_open_cache = 128# 接受的數據包大小;增加該變量的值十分安全,這是因為僅當需要時才會分配額外內存, # 該變量之所以取較小默認值是一種預防措施以捕獲客戶端和服務器之間的錯誤信息包, # 并確保不會因偶然使用大的信息包而導致內存溢出。 max_allowed_packet = 500M# 一個事務,在沒有提交的時候,產生的日志,記錄到Cache中; # 等到事務提交需要提交的時候,則把日志持久化到磁盤。默認binlog_cache_size大小32K binlog_cache_size = 1M#定義了用戶可以創建的內存表(memory table)的大小。這個值用來計算內存表的最大行數值。這個變量支持動態改變 max_heap_table_size = 8M# MySQL的heap(堆積)表緩沖大小。所有聯合在一個DML指令內完成, # 并且大多數聯合甚至可以不用臨時表即可以完成。 tmp_table_size = 16M# MySQL選項以避免外部鎖定。該選項默認開啟 skip-external-locking # 默認存儲引擎 default-storage-engine = InnoDB# InnoDB為獨立表空間模式,每個數據庫的每個表都會生成一個數據空間 # 獨立表空間優點: # 1.每個表都有自已獨立的表空間。 # 2.每個表的數據和索引都會存在自已的表空間中。 # 3.可以實現單表在不同的數據庫中移動。 # 4.空間可以回收(除drop table操作處,表空不能自已回收) # 缺點: # 單表增加過大,如超過100G # 結論: # 共享表空間在Insert操作上少有優勢。其它都沒獨立表空間表現好。 # 當啟用獨立表空間時,請合理調整:innodb_open_files innodb_file_per_table = 1 # 限制Innodb能打開的表的數據,如果庫里的表特別多的情況,請增加這個。這個值默認是300 innodb_open_files = 500# InnoDB使用一個緩沖池來保存索引和原始數據, 不像MyISAM. # 這里你設置越大,你在存取表里面數據時所需要的磁盤I/O越少. # 在一個獨立使用的數據庫服務器上,你可以設置這個變量到服務器物理內存大小的80% # 不要設置過大,否則,由于物理內存的競爭可能導致操作系統的換頁顛簸. # 注意在32位系統上你每個進程可能被限制在 2-3.5G 用戶層面內存限制, # 所以不要設置的太高. innodb_buffer_pool_size = 2048M# innodb使用后臺線程處理數據頁上的讀寫 I/O(輸入輸出)請求,根據你的 CPU 核數來更改,默認是4 # 注:這兩個參數不支持動態改變,需要把該參數加入到my.cnf里, # 修改完后重啟MySQL服務,允許值的范圍從 1-64 innodb_write_io_threads = 16 innodb_read_io_threads = 16# 默認設置為 0,表示不限制并發數,這里推薦設置為0,更好去發揮CPU多核處理能力,提高并發量 innodb_thread_concurrency = 0# InnoDB中的清除操作是一類定期回收無用數據的操作。在之前的幾個版本中, # 清除操作是主線程的一部分,這意味著運行時它可能會堵塞其它的數據庫操作。 # 從MySQL5.5.X版本開始,該操作運行于獨立的線程中,并支持更多的并發數。 # 用戶可通過設置innodb_purge_threads配置參數來選擇清除操作是否使用單 # 獨線程,默認情況下參數設置為0(不使用單獨線程),設置為 1 時表示使用單獨的清除線程。建議為1 innodb_purge_threads = 1# 0:如果innodb_flush_log_at_trx_commit的值為0,log buffer每秒就會被刷寫日志文件到磁盤, # 提交事務的時候不做任何操作(執行是由mysql的master thread線程來執行的。 # 主線程中每秒會將重做日志緩沖寫入磁盤的重做日志文件(REDO LOG)中。不論事務是否已經提交) # 默認的日志文件是ib_logfile0,ib_logfile1 # 1:當設為默認值1的時候,每次提交事務的時候,都會將log buffer刷寫到日志。 # 2:如果設為2,每次提交事務都會寫日志,但并不會執行刷的操作。 # 每秒定時會刷到日志文件。要注意的是,并不能保證100%每秒一定都會刷到磁盤,這要取決于進程的調度。 # 每次事務提交的時候將數據寫入事務日志,而這里的寫入僅是調用了文件系統的寫入操作, # 而文件系統是有 緩存的,所以這個寫入并不能保證數據已經寫入到物理磁盤 # 默認值1是為了保證完整的ACID。當然,你可以將這個配置項設為1以外的值來換取更高的性能, # 但是在系統崩潰的時候,你將會丟失1秒的數據。 # 設為0的話,mysqld進程崩潰的時候,就會丟失最后1秒的事務。 # 設為2,只有在操作系統崩潰或者斷電的時候才會丟失最后1秒的數據。 # InnoDB在做恢復的時候會忽略這個值。 # 總結 # 設為1當然是最安全的,但性能頁是最差的(相對其他兩個參數而言,但不是不能接受)。 # 如果對數據一致性和完整性要求不高,完全可以設為2, # 如果只最求性能,例如高并發寫的日志服務器,設為0來獲得更高性能 innodb_flush_log_at_trx_commit = 2# 此參數確定些日志文件所用的內存大小,以M為單位。緩沖區更大能提高性能, # 但意外的故障將會丟失數據。MySQL開發人員建議設置為1-8M之間 innodb_log_buffer_size = 2M# 此參數確定數據日志文件的大小,更大的設置可以提高性能,但也會增加恢復故障數據庫所需的時間 innodb_log_file_size = 32M# 為提高性能,MySQL可以以循環方式將日志文件寫到多個文件。推薦設置為3 innodb_log_files_in_group = 3# innodb主線程刷新緩存池中的數據,使臟數據比例小于90% innodb_max_dirty_pages_pct = 90# InnoDB事務在被回滾之前可以等待一個鎖定的超時秒數。 # InnoDB在它自己的鎖定表中自動檢測事務死鎖并且回滾事務。 # InnoDB用LOCK TABLES語句注意到鎖定設置。默認值是50秒 innodb_lock_wait_timeout = 120 # 批量插入緩存大小, 這個參數是針對MyISAM存儲引擎來說的。 # 適用于在一次性插入100-1000+條記錄時, 提高效率。默認值是8M。可以針對數據量的大小,翻倍增加。 bulk_insert_buffer_size = 8M# 服務器關閉交互式連接前等待活動的秒數。 # 交互式客戶端定義為在mysql_real_connect()中使用CLIENT_INTERACTIVE選項的客戶端。 # 默認值:28800秒(8小時) interactive_timeout = 28800# 服務器關閉非交互連接之前等待活動的秒數。在線程啟動時, # 根據全局wait_timeout值或全局interactive_timeout值初始化會話wait_timeout值, # 取決于客戶端類型(由mysql_real_connect()的連接選項CLIENT_INTERACTIVE定義)。 # 參數默認值:28800秒(8小時) # MySQL服務器所支持的最大連接數是有上限的,因為每個連接的建立都會消耗內存, # 因此我們希望客戶端在連接到MySQL Server處理完相應的操作后, # 應該斷開連接并釋放占用的內存。如果你的MySQL Server有大量的閑置連接, # 他們不僅會白白消耗內存,而且如果連接一直在累加而不斷開, # 最終肯定會達到MySQL Server的連接上限數, # 這會報'too many connections'的錯誤。對于wait_timeout的值設定,應該根據系統的運行情況來判斷。 # 在系統運行一段時間后,可以通過show processlist命令查看當前系統的連接狀態, # 如果發現有大量的sleep狀態的連接進程,則說明該參數設置的過大, # 可以進行適當的調整小些。要同時設置interactive_timeout和wait_timeout才會生效。 wait_timeout = 28800[mysqldump] quick max_allowed_packet = 500M [mysqld_safe] open-files-limit = 8192 log-error=/home/mysql/data/mysql.err sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION總結
以上是生活随笔為你收集整理的Mysql 配置文件常见配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用模块-01
- 下一篇: matlab零相移滤波,零相移数字滤波器