mysql的my.cnf
配置參數(shù)詳解
[client] #客戶端設(shè)置,即客戶端默認(rèn)的連接參數(shù)
port = 3307 ? #默認(rèn)連接端口
socket = /data/mysqldata/3307/mysql.sock #用于本地連接的socket套接字
default-character-set = utf8mb4 #編碼
[mysqld] #服務(wù)端基本設(shè)置
port = 3307 MySQL監(jiān)聽端口
socket = /data/mysqldata/3307/mysql.sock #為MySQL客戶端程序和服務(wù)器之間的本地通訊指定一個(gè)套接字文件
pid-file = /data/mysqldata/3307/mysql.pid #pid文件所在目錄
basedir = /usr/local/mysql-5.7.11 #使用該目錄作為根目錄(安裝目錄)
datadir = /data/mysqldata/3307/data #數(shù)據(jù)文件存放的目錄
tmpdir = /data/mysqldata/3307/tmp ? #MySQL存放臨時(shí)文件的目錄
character_set_server = utf8mb4 ?#服務(wù)端默認(rèn)編碼(數(shù)據(jù)庫級別)
collation_server = utf8mb4_bin ?#服務(wù)端默認(rèn)的比對規(guī)則,排序規(guī)則
user = mysql #MySQL啟動(dòng)用戶
log_bin_trust_function_creators = 1 #This variable applies when binary logging is enabled. It controls whether stored function creators can be trusted not to create stored functions that will cause #unsafe events to be written to the binary log. If set to 0 (the default), users are not permitted to create or alter stored functions unless they have the SUPER #privilege in addition to the CREATE ROUTINE or ALTER ROUTINE privilege.?開啟了binlog后,必須設(shè)置這個(gè)值為1.主要是考慮binlog安全
performance_schema = 0 ?#性能優(yōu)化的引擎,默認(rèn)關(guān)閉
secure_auth = 1 #secure_auth 為了防止低版本的MySQL客戶端(<4.1)使用舊的密碼認(rèn)證方式訪問高版本的服務(wù)器。MySQL 5.6.7開始secure_auth 默認(rèn)為啟用值1
#ft_min_word_len = 1 ?#開啟全文索引
#myisam_recover #自動(dòng)修復(fù)MySQL的myisam表
explicit_defaults_for_timestamp #明確時(shí)間戳默認(rèn)null方式
event_scheduler #計(jì)劃任務(wù)(事件調(diào)度器)
skip-external-locking #跳過外部鎖定;External-locking用于多進(jìn)程條件下為MyISAM數(shù)據(jù)表進(jìn)行鎖定
skip-name-resolve #跳過客戶端域名解析;當(dāng)新的客戶連接mysqld時(shí),mysqld創(chuàng)建一個(gè)新的線程來處理請求。該線程先檢查是否主機(jī)名在主機(jī)名緩存中。如果不在,線程試圖解析主機(jī)名。
#使用這一選項(xiàng)以消除MySQL進(jìn)行DNS解析的時(shí)間。但需要注意,如果開啟該選項(xiàng),則所有遠(yuǎn)程主機(jī)連接授權(quán)都要使用IP地址方式,否則MySQL將無法正常處理連接請求!
#bind-address = 127.0.0.1 #MySQL綁定IP
skip-slave-start #為了安全起見,復(fù)制環(huán)境的數(shù)據(jù)庫還是設(shè)置--skip-slave-start參數(shù),防止復(fù)制隨著mysql啟動(dòng)而自動(dòng)啟動(dòng)
slave_net_timeout = 30 #The number of seconds to wait for more data from a master/slave connection before aborting the read. MySQL主從復(fù)制的時(shí)候,
?#當(dāng)Master和Slave之間的網(wǎng)絡(luò)中斷,但是Master和Slave無法察覺的情況下(比如防火墻或者路由問題)。
#Slave會(huì)等待slave_net_timeout設(shè)置的秒數(shù)后,才能認(rèn)為網(wǎng)絡(luò)出現(xiàn)故障,然后才會(huì)重連并且追趕這段時(shí)間主庫的數(shù)據(jù)。
#1.用這三個(gè)參數(shù)來判斷主從是否延遲是不準(zhǔn)確的Slave_IO_Running,Slave_SQL_Running,Seconds_Behind_Master.還是用pt-heartbeat吧。
#2.slave_net_timeout不要用默認(rèn)值,設(shè)置一個(gè)你能接受的延時(shí)時(shí)間。
local-infile = 0 ?#設(shè)定是否支持命令load data local infile。如果指定local關(guān)鍵詞,則表明支持從客戶主機(jī)讀文件
back_log = 1024? #指定MySQL可能的連接數(shù)量。當(dāng)MySQL主線程在很短的時(shí)間內(nèi)得到非常多的連接請求,該參數(shù)就起作用,之后主線程花些時(shí)間(盡管很短)檢查連接并且啟動(dòng)一個(gè)新線程。
#back_log參數(shù)的值指出在MySQL暫時(shí)停止響應(yīng)新請求之前的短時(shí)間內(nèi)多少個(gè)請求可以被存在堆棧中。
#sql_mode = 'PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
sql_mode = NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER #sql_mode,定義了mysql應(yīng)該支持的sql語法,數(shù)據(jù)校驗(yàn)等! ?NO_AUTO_CREATE_USER:禁止GRANT創(chuàng)建密碼為空的用戶。
?#NO_ENGINE_SUBSTITUTION 如果需要的存儲(chǔ)引擎被禁用或未編譯,可以防止自動(dòng)替換存儲(chǔ)引擎
key_buffer_size = 32M #索引塊的緩沖區(qū)大小,對MyISAM表性能影響最大的一個(gè)參數(shù).決定索引處理的速度,尤其是索引讀的速度。默認(rèn)值是16M,通過檢查狀態(tài)值Key_read_requests
#和Key_reads,可以知道key_buffer_size設(shè)置是否合理
max_allowed_packet = 512M #一個(gè)查詢語句包的最大尺寸。消息緩沖區(qū)被初始化為net_buffer_length字節(jié),但是可在需要時(shí)增加到max_allowed_packet個(gè)字節(jié)。
#該值太小則會(huì)在處理大包時(shí)產(chǎn)生錯(cuò)誤。如果使用大的BLOB列,必須增加該值。
#這個(gè)值來限制server接受的數(shù)據(jù)包大小。有時(shí)候大的插入和更新會(huì)受max_allowed_packet 參數(shù)限制,導(dǎo)致寫入或者更新失敗。
thread_stack = 256K #線程緩存;主要用來存放每一個(gè)線程自身的標(biāo)識(shí)信息,如線程id,線程運(yùn)行時(shí)基本信息等等,我們可以通過 thread_stack 參數(shù)來設(shè)置為每一個(gè)線程棧分配多大的內(nèi)存。
sort_buffer_size = 16M #是MySQL執(zhí)行排序使用的緩沖大小。如果想要增加ORDER BY的速度,首先看是否可以讓MySQL使用索引而不是額外的排序階段。
#如果不能,可以嘗試增加sort_buffer_size變量的大小。
read_buffer_size = 16M #是MySQL讀入緩沖區(qū)大小。對表進(jìn)行順序掃描的請求將分配一個(gè)讀入緩沖區(qū),MySQL會(huì)為它分配一段內(nèi)存緩沖區(qū)。read_buffer_size變量控制這一緩沖區(qū)的大小。
#如果對表的順序掃描請求非常頻繁,并且你認(rèn)為頻繁掃描進(jìn)行得太慢,可以通過增加該變量值以及內(nèi)存緩沖區(qū)大小提高其性能。
join_buffer_size = 16M #應(yīng)用程序經(jīng)常會(huì)出現(xiàn)一些兩表(或多表)Join的操作需求,MySQL在完成某些 Join 需求的時(shí)候(all/index join),為了減少參與Join的“被驅(qū)動(dòng)表”的
#讀取次數(shù)以提高性能,需要使用到 Join Buffer 來協(xié)助完成 Join操作。當(dāng) Join Buffer 太小,MySQL 不會(huì)將該 Buffer 存入磁盤文件,
#而是先將Join Buffer中的結(jié)果集與需要 Join 的表進(jìn)行 Join 操作,
#然后清空 Join Buffer 中的數(shù)據(jù),繼續(xù)將剩余的結(jié)果集寫入此 Buffer 中,如此往復(fù)。這勢必會(huì)造成被驅(qū)動(dòng)表需要被多次讀取,成倍增加 IO 訪問,降低效率。
read_rnd_buffer_size = 32M #是MySQL的隨機(jī)讀緩沖區(qū)大小。當(dāng)按任意順序讀取行時(shí)(例如,按照排序順序),將分配一個(gè)隨機(jī)讀緩存區(qū)。進(jìn)行排序查詢時(shí),MySQL會(huì)首先掃描一遍該緩沖,以避免磁盤搜索,
#提高查詢速度,如果需要排序大量數(shù)據(jù),可適當(dāng)調(diào)高該值。但MySQL會(huì)為每個(gè)客戶連接發(fā)放該緩沖空間,所以應(yīng)盡量適當(dāng)設(shè)置該值,以避免內(nèi)存開銷過大。
net_buffer_length = 16K #通信緩沖區(qū)在查詢期間被重置到該大小。通常不要改變該參數(shù)值,但是如果內(nèi)存不足,可以將它設(shè)置為查詢期望的大小。
?#(即,客戶發(fā)出的SQL語句期望的長度。如果語句超過這個(gè)長度,緩沖區(qū)自動(dòng)地被擴(kuò)大,直到max_allowed_packet個(gè)字節(jié)。)
myisam_sort_buffer_size = 128M ?#當(dāng)對MyISAM表執(zhí)行repair table或創(chuàng)建索引時(shí),用以緩存排序索引;設(shè)置太小時(shí)可能會(huì)遇到” myisam_sort_buffer_size is too small”
bulk_insert_buffer_size = 32M ?#默認(rèn)8M,當(dāng)對MyISAM非空表執(zhí)行insert … select/ insert … values(…),(…)或者load data infile時(shí),使用樹狀cache緩存數(shù)據(jù),每個(gè)thread分配一個(gè);
? #注:當(dāng)對MyISAM表load 大文件時(shí),調(diào)大bulk_insert_buffer_size/myisam_sort_buffer_size/key_buffer_size會(huì)極大提升速度
thread_cache_size = 384 ? #thread_cahe_size線程池,線程緩存。用來緩存空閑的線程,以至于不被銷毀,如果線程緩存在的空閑線程,需要重新建立新連接,
#則會(huì)優(yōu)先調(diào)用線程池中的緩存,很快就能響應(yīng)連接請求。每建立一個(gè)連接,都需要一個(gè)線程與之匹配。
query_cache_size = 0 ? ?#工作原理: 一個(gè)SELECT查詢在DB中工作后,DB會(huì)把該語句緩存下來,當(dāng)同樣的一個(gè)SQL再次來到DB里調(diào)用時(shí),DB在該表沒發(fā)生變化的情況下把結(jié)果從緩存中返回給Client。
? ?#在數(shù)據(jù)庫寫入量或是更新量也比較大的系統(tǒng),該參數(shù)不適合分配過大。而且在高并發(fā),寫入量大的系統(tǒng),建系把該功能禁掉。
query_cache_type = 0 ? ?#決定是否緩存查詢結(jié)果。這個(gè)變量有三個(gè)取值:0,1,2,分別代表了off、on、demand。
tmp_table_size = 1024M #它規(guī)定了內(nèi)部內(nèi)存臨時(shí)表的最大值,每個(gè)線程都要分配。(實(shí)際起限制作用的是tmp_table_size和max_heap_table_size的最小值。)
#如果內(nèi)存臨時(shí)表超出了限制,MySQL就會(huì)自動(dòng)地把它轉(zhuǎn)化為基于磁盤的MyISAM表,存儲(chǔ)在指定的tmpdir目錄下
max_heap_table_size = 512M ? #獨(dú)立的內(nèi)存表所允許的最大容量.# 此選項(xiàng)為了防止意外創(chuàng)建一個(gè)超大的內(nèi)存表導(dǎo)致永盡所有的內(nèi)存資源.
open_files_limit = 10240 #mysql打開最大文件數(shù)
max_connections = 2000 #MySQL無論如何都會(huì)保留一個(gè)用于管理員(SUPER)登陸的連接,用于管理員連接數(shù)據(jù)庫進(jìn)行維護(hù)操作,即使當(dāng)前連接數(shù)已經(jīng)達(dá)到了max_connections。
#因此MySQL的實(shí)際最大可連接數(shù)為max_connections+1;
#這個(gè)參數(shù)實(shí)際起作用的最大值(實(shí)際最大可連接數(shù))為16384,即該參數(shù)最大值不能超過16384,即使超過也以16384為準(zhǔn);
#增加max_connections參數(shù)的值,不會(huì)占用太多系統(tǒng)資源。系統(tǒng)資源(CPU、內(nèi)存)的占用主要取決于查詢的密度、效率等;
?#該參數(shù)設(shè)置過小的最明顯特征是出現(xiàn)”Too many connections”錯(cuò)誤;
max-user-connections = 0 #用來限制用戶資源的,0不限制;對整個(gè)服務(wù)器的用戶限制
max_connect_errors = 100000 #max_connect_errors是一個(gè)MySQL中與安全有關(guān)的計(jì)數(shù)器值,它負(fù)責(zé)阻止過多嘗試失敗的客戶端以防止暴力破解密碼的情況。max_connect_errors的值與性能并無太大關(guān)系。
#當(dāng)此值設(shè)置為10時(shí),意味著如果某一客戶端嘗試連接此MySQL服務(wù)器,但是失敗(如密碼錯(cuò)誤等等)10次,則MySQL會(huì)無條件強(qiáng)制阻止此客戶端連接。
table_open_cache = 5120 #表描述符緩存大小,可減少文件打開/關(guān)閉次數(shù);
interactive_timeout = 86400 #interactive_time -- 指的是mysql在關(guān)閉一個(gè)交互的連接之前所要等待的秒數(shù)(交互連接如mysql gui tool中的連接
wait_timeout = 86400 #wait_timeout -- 指的是MySQL在關(guān)閉一個(gè)非交互的連接之前所要等待的秒數(shù)
binlog_cache_size = 16M #二進(jìn)制日志緩沖大小
#我們知道InnoDB存儲(chǔ)引擎是支持事務(wù)的,實(shí)現(xiàn)事務(wù)需要依賴于日志技術(shù),為了性能,日志編碼采用二進(jìn)制格式。那么,我們?nèi)绾斡浫罩灸?#xff1f;有日志的時(shí)候,就直接寫磁盤?
#可是磁盤的效率是很低的,如果你用過Nginx,,一般Nginx輸出access log都是要緩沖輸出的。因此,記錄二進(jìn)制日志的時(shí)候,我們是否也需要考慮Cache呢?
#答案是肯定的,但是Cache不是直接持久化,于是面臨安全性的問題——因?yàn)橄到y(tǒng)宕機(jī)時(shí),Cache中可能有殘余的數(shù)據(jù)沒來得及寫入磁盤。因此,Cache要權(quán)衡,要恰到好處:
#既減少磁盤I/O,滿足性能要求;又保證Cache無殘留,及時(shí)持久化,滿足安全要求。
slow_query_log = 1 #開啟慢查詢
long_query_time = 1 #超過的時(shí)間為1s;MySQL能夠記錄執(zhí)行時(shí)間超過參數(shù) long_query_time 設(shè)置值的SQL語句,默認(rèn)是不記錄的。
log-slow-admin-statements?
log-queries-not-using-indexes #記錄管理語句和沒有使用index的查詢記錄
# *** Replication related settings ***
binlog_format = ROW #在復(fù)制方面的改進(jìn)就是引進(jìn)了新的復(fù)制技術(shù):基于行的復(fù)制。簡言之,這種新技術(shù)就是關(guān)注表中發(fā)生變化的記錄,而非以前的照抄 binlog 模式。
#從 MySQL 5.1.12 開始,可以用以下三種模式來實(shí)現(xiàn):基于SQL語句的復(fù)制(statement-based replication, SBR),基于行的復(fù)制(row-based replication, RBR),
混合模式復(fù)制(mixed-based replication, MBR)。相應(yīng)地,binlog的格式也有三種:STATEMENT,ROW,MIXED。MBR 模式中,SBR 模式是默認(rèn)的。
#max_binlog_cache_size = 102400 ? # 為每個(gè)session 最大可分配的內(nèi)存,在事務(wù)過程中用來存儲(chǔ)二進(jìn)制日志的緩存。
log-bin = /data/mysqldata/3307/binlog/mysql-bin #開啟二進(jìn)制日志功能,binlog數(shù)據(jù)位置
log-bin-index = /data/mysqldata/3307/binlog/mysql-bin.index
relay-log = /data/mysqldata/3307/relay/mysql-relay-bin #relay-log日志記錄的是從服務(wù)器I/O線程將主服務(wù)器的二進(jìn)制日志讀取過來記錄到從服務(wù)器本地文件,
#然后SQL線程會(huì)讀取relay-log日志的內(nèi)容并應(yīng)用到從服務(wù)器
relay-log-index = /data/mysqldata/3307/relay/mysql-relay-bin.index #binlog傳到備機(jī)被寫道relaylog里,備機(jī)的slave sql線程從relaylog里讀取然后應(yīng)用到本地。
server_id = 100 ? #服務(wù)端ID,用來高可用時(shí)做區(qū)分
log_slave_updates = 1 #log_slave_updates是將從服務(wù)器從主服務(wù)器收到的更新記入到從服務(wù)器自己的二進(jìn)制日志文件中。
expire-logs-days = 15 #二進(jìn)制日志自動(dòng)刪除的天數(shù)。默認(rèn)值為0,表示“沒有自動(dòng)刪除”。啟動(dòng)時(shí)和二進(jìn)制日志循環(huán)時(shí)可能刪除。
max_binlog_size = 512M #如果二進(jìn)制日志寫入的內(nèi)容超出給定值,日志就會(huì)發(fā)生滾動(dòng)。你不能將該變量設(shè)置為大于1GB或小于4096字節(jié)。 默認(rèn)值是1GB。
replicate-wild-ignore-table = mysql.% #replicate-wild-ignore-table參數(shù)能同步所有跨數(shù)據(jù)庫的更新,比如replicate-do-db或者replicate-ignore-db不會(huì)同步類似?
#replicate-wild-do-table = db_name.% #設(shè)定需要復(fù)制的Table
#slave-skip-errors = 1062,1053,1146 #復(fù)制時(shí)跳過一些錯(cuò)誤;不要胡亂使用這些跳過錯(cuò)誤的參數(shù),除非你非常確定你在做什么。當(dāng)你使用這些參數(shù)時(shí)候,MYSQL會(huì)忽略那些錯(cuò)誤,
#這樣會(huì)導(dǎo)致你的主從服務(wù)器數(shù)據(jù)不一致。
auto_increment_offset = 1
auto_increment_increment = 2 #這兩個(gè)參數(shù)一般用在主主同步中,用來錯(cuò)開自增值, 防止鍵值沖突
?
relay_log_info_repository = TABLE #將中繼日志的信息寫入表:mysql.slave_realy_log_info
master_info_repository = TABLE #將master的連接信息寫入表:mysql.salve_master_info
relay_log_recovery = on #中繼日志自我修復(fù);當(dāng)slave從庫宕機(jī)后,假如relay-log損壞了,導(dǎo)致一部分中繼日志沒有處理,則自動(dòng)放棄所有未執(zhí)行的relay-log,
#并且重新從master上獲取日志,這樣就保證了relay-log的完整性
?
?
# *** innodb setting ***
innodb_buffer_pool_size = 4G #InnoDB 用來高速緩沖數(shù)據(jù)和索引內(nèi)存緩沖大小。 更大的設(shè)置可以使訪問數(shù)據(jù)時(shí)減少磁盤 I/O。
innodb_data_file_path = ibdata1:1G:autoextend #單獨(dú)指定數(shù)據(jù)文件的路徑與大小
innodb_flush_log_at_trx_commit = 0 #每次commit 日志緩存中的數(shù)據(jù)刷到磁盤中。通常設(shè)置為 1,意味著在事務(wù)提交前日志已被寫入磁盤, 事務(wù)可以運(yùn)行更長以及服務(wù)崩潰后的修復(fù)能力。
#如果你愿意減弱這個(gè)安全,或你運(yùn)行的是比較小的事務(wù)處理,可以將它設(shè)置為 0 ,以減少寫日志文件的磁盤 I/O。這個(gè)選項(xiàng)默認(rèn)設(shè)置為 0。
#sync_binlog = 1000 #sync_binlog=n,當(dāng)每進(jìn)行n次事務(wù)提交之后,MySQL將進(jìn)行一次fsync之類的磁盤同步指令來將binlog_cache中的數(shù)據(jù)強(qiáng)制寫入磁盤。
innodb_read_io_threads = 8
innodb_write_io_threads = 8 #對于多核的CPU機(jī)器,可以修改innodb_read_io_threads和innodb_write_io_threads來增加IO線程,來充分利用多核的性能
innodb_file_format = Barracuda #Innodb Plugin引擎開始引入多種格式的行存儲(chǔ)機(jī)制,目前支持:Antelope、Barracuda兩種。其中Barracuda兼容Antelope格式。
innodb_open_files = 65536 #限制Innodb能打開的表的數(shù)量
innodb_purge_threads = 1 #開始碎片回收線程。這個(gè)應(yīng)該能讓碎片回收得更及時(shí)而且不影響其他線程的操作
innodb_support_xa = FALSE #分布式事務(wù)
innodb_log_buffer_size = 256M #InnoDB 將日志寫入日志磁盤文件前的緩沖大小。理想值為 1M 至 8M。大的日志緩沖允許事務(wù)運(yùn)行時(shí)不需要將日志保存入磁盤而只到事務(wù)被提交(commit)。
#因此,如果有大的事務(wù)處理,設(shè)置大的日志緩沖可以減少磁盤I/O。
innodb_log_file_size = 1G #日志組中的每個(gè)日志文件的大小(單位 MB)。如果 n 是日志組中日志文件的數(shù)目,那么理想的數(shù)值為 1M 至下面設(shè)置的緩沖池(buffer pool)大小的 1/n。較大的值,
#可以減少刷新緩沖池的次數(shù),從而減少磁盤 I/O。但是大的日志文件意味著在崩潰時(shí)需要更長的時(shí)間來恢復(fù)數(shù)據(jù)。
innodb_log_files_in_group = 3 #指定有三個(gè)日志組
#innodb_lock_wait_timeout = 120 #在回滾(rooled back)之前,InnoDB 事務(wù)將等待超時(shí)的時(shí)間(單位 秒)
innodb_max_dirty_pages_pct = 75 #innodb_max_dirty_pages_pct作用:控制Innodb的臟頁在緩沖中在那個(gè)百分比之下,值在范圍1-100,默認(rèn)為90.這個(gè)參數(shù)的另一個(gè)用處:
#當(dāng)Innodb的內(nèi)存分配過大,致使swap占用嚴(yán)重時(shí),可以適當(dāng)?shù)臏p小調(diào)整這個(gè)值,使達(dá)到swap空間釋放出來。建義:這個(gè)值最大在90%,最小在15%。
#太大,緩存中每次更新需要致?lián)Q數(shù)據(jù)頁太多,太小,放的數(shù)據(jù)頁太小,更新操作太慢。
innodb_buffer_pool_instances = 4 ?#innodb_buffer_pool_size 一致?可以開啟多個(gè)內(nèi)存緩沖池,把需要緩沖的數(shù)據(jù)hash到不同的緩沖池中,這樣可以并行的內(nèi)存讀寫。
innodb_io_capacity = 500 #這個(gè)參數(shù)據(jù)控制Innodb checkpoint時(shí)的IO能力
innodb_file_per_table = 1 #作用:使每個(gè)Innodb的表,有自已獨(dú)立的表空間。如刪除文件后可以回收那部分空間。
#分配原則:只有使用不使用。但DB還需要有一個(gè)公共的表空間。
innodb_change_buffering = inserts #當(dāng)更新/插入的非聚集索引的數(shù)據(jù)所對應(yīng)的頁不在內(nèi)存中時(shí)(對非聚集索引的更新操作通常會(huì)帶來隨機(jī)IO),會(huì)將其放到一個(gè)insert buffer中,
#當(dāng)隨后頁面被讀到內(nèi)存中時(shí),會(huì)將這些變化的記錄merge到頁中。當(dāng)服務(wù)器比較空閑時(shí),后臺(tái)線程也會(huì)做merge操作
innodb_adaptive_flushing = 1 #該值影響每秒刷新臟頁的操作,開啟此配置后,刷新臟頁會(huì)通過判斷產(chǎn)生重做日志的速度來判斷最合適的刷新臟頁的數(shù)量;
transaction-isolation = READ-COMMITTED #數(shù)據(jù)庫事務(wù)隔離級別 ,讀取提交內(nèi)容
innodb_flush_method = O_DIRECT #innodb_flush_method這個(gè)參數(shù)控制著innodb數(shù)據(jù)文件及redo log的打開、刷寫模式
#InnoDB使用O_DIRECT模式打開數(shù)據(jù)文件,用fsync()函數(shù)去更新日志和數(shù)據(jù)文件。
#innodb_use_sys_malloc = 1 #默認(rèn)設(shè)置值為1.設(shè)置為0:表示Innodb使用自帶的內(nèi)存分配程序;設(shè)置為1:表示InnoDB使用操作系統(tǒng)的內(nèi)存分配程序。
?
[mysqldump]
quick #它強(qiáng)制 mysqldump 從服務(wù)器查詢?nèi)〉糜涗浿苯虞敵龆皇侨〉盟杏涗浐髮⑺鼈兙彺娴絻?nèi)存中
max_allowed_packet = 512M #限制server接受的數(shù)據(jù)包大小;指代mysql服務(wù)器端和客戶端在一次傳送數(shù)據(jù)包的過程當(dāng)中數(shù)據(jù)包的大小
net_buffer_length = 16384 #TCP/IP和套接字通信緩沖區(qū)大小,創(chuàng)建長度達(dá)net_buffer_length的行
[mysql]
auto-rehash #auto-rehash是自動(dòng)補(bǔ)全的意思
[isamchk] #isamchk數(shù)據(jù)檢測恢復(fù)工具
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
?
[myisamchk] #使用myisamchk實(shí)用程序來獲得有關(guān)你的數(shù)據(jù)庫桌表的信息、檢查和修復(fù)他們或優(yōu)化他們
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout #mysqlhotcopy使用lock tables、flush tables和cp或scp來快速備份數(shù)據(jù)庫.它是備份數(shù)據(jù)庫或單個(gè)表最快的途徑,完全屬于物理備份,但只能用于備份MyISAM存儲(chǔ)引擎和運(yùn)行在數(shù)據(jù)庫目錄所在的機(jī)器上.
#與mysqldump備份不同,mysqldump屬于邏輯備份,備份時(shí)是執(zhí)行的sql語句.使用mysqlhotcopy命令前需要要安裝相應(yīng)的軟件依賴包.
?
轉(zhuǎn)載于:https://www.cnblogs.com/bbox/p/10161749.html
總結(jié)
以上是生活随笔為你收集整理的mysql的my.cnf的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 随手记录自动化常用的一些事情
- 下一篇: 文件的修改