欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql初始化命令mysqld?--initialize參數(shù)說明小結

 更新時間:2024年08月16日 10:01:51   作者:飄零未歸人  
本文主要介紹了mysql初始化命令mysqld?--initialize參數(shù)說明小結,文中通過圖表代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

 可配置變量:

mysqld --verbose --help 顯示服務器選項和可配置變量一覽,從配置文件[mysqld][server]組讀取信息??膳鋮?shù)可以在啟動命令中指定,也可以在指定的配置文件中配置。

參數(shù)說明
user= 運行mysqld服務器的用戶名或用戶ID
bind-address=默認0.0.0.0,服務器監(jiān)聽的網(wǎng)絡套接字綁定到一個單獨的地址
port=監(jiān)聽TCP/IP連接的端口號,必須是1024或更高,除非以root身份運行
port-open-timeout=默認值0,表示服務器應等待多少秒的TCP/IP端口成為免費的
server-id=使用在主服務器和從服務器復制,以標識自己的識別性
chroot將啟動mysqld服務器在一個封閉的環(huán)境中使用chroot()系統(tǒng)調(diào)用
core-file=指定mysql崩潰時生成的core文件路徑
core-file-size=指定mysql崩潰時生成的core文件大小
skip-grant-tables服務器啟動時不進行權限檢查
basedir=默認/,指定mysql安裝目錄
datadir=默認basedir,指定數(shù)據(jù)安裝目錄
socket=默認/tmp/mysql.sock,指定監(jiān)聽本地連接的Unix套接字文件
pid-file=默認/var/lib,指定創(chuàng)建mysql進程ID文件的目錄
tmpdir=默認/tmp,指定臨時文件的目錄
secure-auth=是否啟用安全認證,老版本密碼是16字節(jié),新版本密碼是41字節(jié)
safe-user-create是否禁用grant語句創(chuàng)建用戶
skip-show-database是否只允許有SHOW DATABASES權限的用戶執(zhí)行SHOW DATABASES
secure-file-priv=指定數(shù)據(jù)導入導出的文件所在目錄,如果指定只能放在該目錄中
skip-ssl不使用SSL
ssl-ca=SSL的CA文件路徑
ssl-capath=代替ssl-ca,SSL的CA文件路徑
ssl-cert=SSL的數(shù)字證書文件路徑
ssl-cipher=允許使用SSL加密的密碼列表
ssl-key=RSA私鑰文件路徑
default-storage-engine=/default-table-type=設置默認存儲引擎
ansi使用標準(ANSI)SQL語法代替MySQL語法
sql-mode=設置支持的sql語法。

ALLOW_INVALID_DATES

        ANSI_QUOTES

        ERROR_FOR_DIVISION_BY_ZERO

        HIGH_NOT_PRECEDENCE

        IGNORE_SPACE

        NO_AUTO_CREATE_USER

        NO_AUTO_VALUE_ON_ZERO

        NO_BACKSLASH_ESCAPES

        NO_DIR_IN_CREATE

        NO_ENGINE_SUBSTITUTION

        NO_FIELD_OPTIONS

        NO_KEY_OPTIONS

        NO_TABLE_OPTIONS

        NO_UNSIGNED_SUBTRACTION

        NO_ZERO_DATE

        NO_ZERO_IN_DATE

        ONLY_FULL_GROUP_BY

        PAD_CHAR_TO_FULL_LENGTH

        PIPES_AS_CONCAT

        REAL_AS_FLOAT

        STRICT_ALL_TABLES

        STRICT_TRANS_TABLES

auto_increment_increment=設置自增列每次增加幾,默認為1
auto_increment_offset=設置自增列初始值,默認為1
div_precision_increment=設置用/操作符執(zhí)行除操作的結果的精確度的位數(shù),默認4,最小0,最大30
enable-named-pipe啟用命名管道支持。該選項只適用Windows NT、2000、XP和2003系統(tǒng),并且只適用支持命名管道連接的mysqld-nt和mysqld-max-nt服務器
enable-pstack打印象征性的堆棧錯誤信息. 只有在linux系統(tǒng)下,并且mysql有啟動選項 --with-pstack才可以使用
engine-condition-pushdown簇相關下推特性
event-scheduler=開關事件調(diào)度
skip-event-scheduler關閉事件調(diào)度
exit-info這是不同標志的一個位掩碼,你可以用來調(diào)試mysqld服務器。不要使用該選項,除非你確切知道它在做什么
old-alter-table設置服務器不使用優(yōu)化的方法執(zhí)行ALTER TABLE
old-style-user-limits是否啟用舊式用戶limits
partition啟用或禁用用戶定義的分區(qū)支持
skip-partition禁用用戶定義分區(qū)支持
plugin_dir=指定插件目錄
plugin-load=指定服務器啟動時要加載的插件
symbolic-links啟用支持符號鏈接,可以將MyISAM索引文件和數(shù)據(jù)文件放到除my.cnf指定的data目錄外的其他地方
skip-symbolic-links禁用符號鏈接
sync_frm設置當任何非臨時表被創(chuàng)建時,frm文件同步到磁盤
temp-pool設置讓臨時文件使用的一小部分名稱
updatable_views_with_limit設置當視圖不包含主鍵的所有列,并且UPDATE語句中包含一個LIMIT子句時,是否可以更新視圖
consolewindows版本才支持,將錯誤日志消息寫入stderr和stdout,即使指定了–log-error。如果使用該選項,mysqld不關閉控制臺窗口
allow-suspicious-udfs控制是否用戶定義的函數(shù)只有一個xxx符,用作可載入的主函數(shù)。默認情況下,該選項被關閉,只有至少有一個附屬符的UDF 可以載入。這樣可以防止從未包含合法UDF的共享文件裝載函數(shù)。
des-key-file=從該文件讀DES_ENCRYPT()和DES_DECRYPT()使用的默認鍵
group_concat_max_len=允許的GROUP_CONCAT()函數(shù)結果的最大長度
max_long_data_size=設定可以由mysql_stmt_send_long_data()這個C API函數(shù)所傳送的參數(shù)值的最大長度,如果沒有在mysqld啟動時設定,其默認為max_allowed_packet變量的值。MySQL 5.6已經(jīng)棄用此變量。
sysdate-is-now設置SYSDATE()返回的是當前執(zhí)行時間而非當前語句開始執(zhí)行時間
default_week_format=當調(diào)用WEEK()或YEARWEEK()函數(shù)時,如果不帶可選的mode參數(shù),則默認為此變量設置的那個模式值。
character-set-server=設置服務器字符集
collation-server=設置默認的collate排序集
character-set-client-handshake不忽略客戶端發(fā)來的字符集
skip-character-set-client-handshake忽略客戶端發(fā)來的字符集
character-set-filesystem=設置文件系統(tǒng)的字符集
character-sets-dir=指定存放字符集的目錄
lower_case_file_system設置包含數(shù)據(jù)目錄的文件系統(tǒng)是否區(qū)分文件名的大小寫。如果此變量的值為ON,則文件名不區(qū)分大小寫
lower_case_table_names=

在執(zhí)行CREATE DATABASE和CREATE TABLE語句時,設置如何處理數(shù)據(jù)庫名和表明所對應的目錄名和文件名。

0:按照CREATE DATABASE和CREATE TABLE語句里給出的名字來創(chuàng)建磁盤文件,名字的比較會區(qū)分大小寫。在文件名區(qū)分大小寫的系統(tǒng)里如Linux,它是默認設置。

1:把CREATE DATABASE和CREATE TABLE語句里給出的名字強制轉換為小寫形式,名字的比較不區(qū)分大小寫。在Windows中它是默認設置。

2:按照CREATE DATABASE和CREATE TABLE語句里給出的名字來創(chuàng)建磁盤文件,但是在進行比較時不區(qū)分大小寫。在Mac OS中它是默認設置。當沒有顯式設置lower_case_table_names變量時,如果數(shù)據(jù)目錄所在的文件系統(tǒng)不區(qū)分文件名的大小寫,那么MySQL服務器將自動把此變量設置為2。將此變量設置為非零值,也會使得表的別名不區(qū)分大小寫

lc-messages=設置錯誤消息的語言環(huán)境
lc-messages-dir=設置錯誤消息的目錄
default-time-zone=設置默認服務器時區(qū)。該選項設置全局time_zone系統(tǒng)變量。如果未給出該選項, 默認時區(qū)與系統(tǒng)時區(qū)相同(用system_time_zone系統(tǒng)變量值給定)
bootstrapmysql_install_db腳本使用該選項來創(chuàng)建MySQL授權表,不需要啟動MySQL服務器
memlock設置服務器進程是否鎖定在內(nèi)存
large-pages在Linux中,由于TLB損失減少,應用程序可能通過使用大頁會獲得性能方面的提升
sort_buffer_size=設置完成排序操作的線程使用的緩沖區(qū)大小
table_open_cache=設置服務器能夠同時打開表的最大個數(shù)
table_definition_cache=設置服務器在其定義緩存里可以存放的表定義(來自.frm文件)個數(shù)
range_alloc_block_size=設置在進行范圍優(yōu)化時分配的內(nèi)存的塊大小
query_prealloc_size=設置為分析和執(zhí)行SQL語句而分配的那個緩沖區(qū)的長度
query_alloc_block_size=設置在分析和執(zhí)行SQL語句時分配的臨時內(nèi)存塊大小
stored_program_cache=設置服務器會為每個連接緩存多少存儲例程
query_cache_type=

查詢的Cache類型。

OFF :不進行緩沖ON:進行緩沖

DEMAND:對SELECT SQL_CACHE開頭的查詢進行緩沖

query_cache_size=查詢Cache的大小
query_cache_min_res_unit=設置為把查詢結果存入查詢緩存里而分配的內(nèi)存塊大小
query_cache_limit=設置查詢結果的最大緩存大小,超過這一大小的查詢結果將不會被緩存
query_cache_wlock_invalidate設置當表被寫鎖定時,客戶端能否使用緩存查詢
thread_handling=設置服務器用于處理客戶端連接的線程模型
slow_launch_time=設置創(chuàng)建“慢”線程所占用的秒數(shù)
thread_cache_size=設置線程緩沖區(qū)的所能容納的最大線程個數(shù)
big-tables是否允許大數(shù)據(jù)表
tmp_table_size=設置MySQL內(nèi)部使用的各種臨時表(即服務器在處理SQL語句的過程中自動創(chuàng)建的表)的最大允許長度
skip-networking不監(jiān)聽所有的TCP/IP連接。
skip-name-resolve當檢查客戶端連接時,不解析主機名
skip-host-cache每次客戶端連接時,服務器執(zhí)行DNS查找禁止內(nèi)部主機緩存
max_allowed_packet=服務器和客戶之間最大的通信的緩沖區(qū)長度,即sql語句的長度
connect_timeout=服務器端在響應“失敗的握手操作”信息給客戶端之前所等待的秒數(shù),默認為10秒
wait_timeout=以秒為單位設定所有SQL語句等待獲取元數(shù)據(jù)鎖(metadata lock)的超時時長,默認為31536000(1年),有效取值范圍為0-31536000
net_retry_count=設置中斷的讀取操作被重試的次數(shù)。profiling 設置是否開啟語句性能分析
profiling_history_size=保持分析信息的SQL語句數(shù)量
optimizer_prune_level=設置優(yōu)化器如何處理中間計劃
optimizer_search_depth=設置查詢優(yōu)化器搜索執(zhí)行計劃的深度
optimizer_switch=被關閉或打開的優(yōu)化器策略。其值為一個以逗號隔開的flag=value設置列表,其中,value的值可以為on或off。你頁可以將標志設置為default,以表示不管其默認值為何值都需要返回它;或者將optimizer_switch自己設置為default,將所有的標志都恢復成默認值
open-files-limit=設置在mysqld中可用的文件描述符數(shù)量
thread_stack=設置每個線程的堆棧大小
log-output=設置一般查詢?nèi)罩竞吐樵內(nèi)罩镜哪夸?/td>
log-error=設置記錄錯誤和啟動消息的日志的目錄
log-warnings設置是否在錯誤日志中追加警告日志
skip-log-warnings禁用警告日志
slow-query-log設置慢查詢?nèi)罩臼欠駟⒂?/td>
slow_query_log_file=設置慢查詢?nèi)罩镜哪夸?/td>
log-queries-not-using-indexes是否記錄未使用索引的查詢
log-slow-admin-statements是否記錄慢查詢語句
log-slow-slave-statements是否記錄從庫超過long_query_time秒數(shù)的查詢
min-examined-row-limit=設置要檢查的行數(shù)大于等于N時才記錄為慢查詢
general-log是否打開查詢?nèi)罩灸J為0(or OFF),打開為1(or ON)
general_log_file=是否生成查詢?nèi)罩疚募?,默認為host_name.log
skip-slave-start設置從庫啟動時不啟動從庫線程
read_only此變量控制的是從服務器是否會以只讀方式來處理客戶連接。默認情況下,read_only的值為OFF,此時,客戶端的更新都會以平常的方式(即它們都有權限這樣做)被接收。如果把此變量設置為ON,那么只有從主服務器那里接收到的語句(對于從服務器)或者擁有SUPER權限的客戶端所執(zhí)行的語句才能執(zhí)行更新操作;SET PASSWORD要求SUPER權限。read_only不會應用于TEMPORARY表
init_slave=指定每次SQL線程啟動時都會執(zhí)行的SQL語句
master-info-file=設置master.info的目錄
sync_master_info=對于從服務器,如果這個變量為0(默認值),那么從服務器不會強制將它的master.info文件同步到磁盤。實際上,正常的文件系統(tǒng)會執(zhí)行刷新操作。如果該值大于0,那么從服務器會在每個事件組處理完之后將該文件同步到磁盤
slave_type_conversions=設置在從服務器上進行基于行的復制時允許的各種類型轉換。默認值為空串(即不允許轉換)。當其值為非空時,它應該是一個以逗號分隔的值列表,其中的值為一個或多個ALL_LOSSY(允許丟失信息的轉換)或ALL_NON_LOSSY(允許那些不丟失信息的轉換)。此變量是在MySQL 5.5.3里引入的
slave_transaction_retries=設置從服務器重試失敗事務的次數(shù)
slave_exec_mode=設置mysql 主從復制中insert出現(xiàn)duplicate-key, update出現(xiàn)no-key-found 情況下的處理方式做控制
slave-skip-errors=設置主從復制過程中從服務器可以自動跳過的錯誤號
slave-load-tmpdir=默認為/tmp,設置從庫復制LOAD DATA INFILE語句創(chuàng)建臨時文件的目錄
slave_compressed_protocol設置是否要對從服務器和主服務器之間的通信進行壓縮
slave-max-allowed-packet=為從庫的IO線程和SQL線程設置數(shù)據(jù)包大小
slave-net-timeout=設置從庫在等待多少秒后無響應才認為出現(xiàn)網(wǎng)絡故障
master-retry-count=設置從庫連接主庫的重試次數(shù)
show-slave-auth-info設置在主庫中是否顯示從庫用戶名和密碼
report-host=設置將被通知給主庫的ip
report-password=設置將被通知給主庫的密碼
report-port=設置將被通知給主庫的端口
report-user=設置將被通知給主庫的賬號
log-bin=設置二進制日志的目錄
log-bin-index=設置二進制日志的索引文的目錄
sync_binlog=設置每次寫入二進制日志時是否同步二進制日志到磁盤上
binlog-format=可選為ROW, STATEMENT, MIXED,5.1.29后默認為 STATEMENT
max_binlog_size=設置二進制日志文件大小
binlog_cache_size=在事務過程中容納二進制日志SQL語句的緩存大小。二進制日志緩存是服務器支持事務存儲引擎并且服務器啟用了二進制日志(–log-bin選項)的前提下為每個客戶端分配的內(nèi)存。如果你經(jīng)常使用大的,多語句事務,你可以增加該值以獲得更有的性能。Binlog_cache_use和Binlog_cache_disk_use狀態(tài)變量可以用來調(diào)整該變量的大小
max_binlog_cache_size=設置二進制日志緩存的最大大小
binlog_stmt_cache_size=設置在事務內(nèi)執(zhí)行非事務語句所需要的使用的緩存的大小
max_binlog_stmt_cache_size=設置影響非事務表的語句所需要的使用的緩存的大小
binlog-row-event-max-size=默認為1024,最大規(guī)模的基于行的二進制日志的最大大小,值應該是256的倍數(shù)
log-short-format設置是否記錄二進制日志和慢查詢?nèi)罩?/td>
log_slave_updates設置從庫是否將從主庫得到的變化增加到自己的二進制日志文件中
log-bin-trust-function-creators設置MySQL如何執(zhí)行存儲函數(shù)和觸發(fā)器創(chuàng)建
log-bin-trust-routine-creators設置MySQL執(zhí)行創(chuàng)建存儲過程
binlog_direct_non_transactional_updates可以同時更新事務型表和非事務型表的事務,可能會導致住服務器里的更新與從服務器里的更新不一致,因為對非事務型語句的更新,在它們出現(xiàn)在二進制日志之前,對于其他會話來講是可見的。啟用此變量(默認是禁用的)會導致非事務型更新被立即寫到二進制日志里,而不是被緩存起來,一直到事務提交之后才寫入。啟用此變量,僅對于那些使用基于語句的日志記錄進行復制的語句才有效
relay-log=設置從庫中繼日志的目錄
relay-log-index=設置從庫中繼日志的索引文件的目錄
relay-log-info-file=設置中繼日志log.info的目錄
sync_relay_log=設置每次寫入中繼日志后,都將變化同步到磁盤
sync_relay_log_info=設置每次寫入relay_log_info日志后,都將變化同步到磁盤
relay_log_space_limit=設置全體中繼日志文件的最大允許大小
relay_log_purge=設置從服務器會在用完一個中繼日志文件之后是否刪除
relay_log_recovery設置從服務器刪除所有的還未處理的中繼日志后還可以再次從主服務器獲取它們
binlog-do-db=告訴主服務器,如果當前的數(shù)據(jù)庫(即USE選定的數(shù)據(jù)庫)是db_name,應將db_name中的更新記錄到二進制日志中,其它所有沒有明顯指定的數(shù)據(jù)庫被忽略。如果使用該選項,應確保只對當前的數(shù)據(jù)庫進行更新。
binlog-ignore-db=告訴主服務器,如果當前的數(shù)據(jù)庫(即USE選定的數(shù)據(jù)庫)是db_name,不應將db_name中的更新保存到二進制日志中。如果使用該選項,應確保只對當前的數(shù)據(jù)庫進行更新。
replicate-do-db=根據(jù)不同的binlog格式有不同的行為
replicate-ignore-db=根據(jù)不同的binlog格式有不同的行為
replicate-do-table=限制復制更新指定的表
replicate-ignore-table=限制不要復制更新指定的表
replicate-wild-do-table=模式可以包含“%”和“_”通配符
replicate-wild-ignore-table=模式可以包含“%”和“_”通配符
replicate-same-server-id 設置相同的server-id是否要復制
replicate-rewrite-db=轉換的默認數(shù)據(jù)庫為to_name
innodb_data_home_dir=設置相對于InnoDB表空間組件文件存放位置的目錄
innodb_data_file_path=設置InnoDB表空間組件的文件目錄
innodb_log_group_home_dir=設置InnoDB日志文件寫入的目錄
innodb_log_files_in_group=設置日志組中每個日志文件的大小
innodb_log_file_size=設置日志文件的大小
innodb_open_files=設置是否啟動獨立表空間
innodb_change_buffering=設置InnoDB緩沖表更改輔助索引的延遲寫操作方式
innodb_adaptive_hash_index=設置InnoDB是否要使用自適應哈希索引
innodb_autoinc_lock_mode=設置InnoDB用于生成AUTO_INCREMENT值的鎖定算法
innodb_large_prefix設置對于那些使用COMPRESSED或DYNAMIC行格式的表,允許前綴最高達到3072個字節(jié)
innodb_strict_mode設置InnoDB是否對表和索引的創(chuàng)建和修改語句的語法進行較嚴格要求
innodb_use_sys_malloc=設置InnoDB是否要使用系統(tǒng)內(nèi)存分配器
innodb_buffer_pool_size=設置InnoDB用于緩沖表數(shù)據(jù)和索引的那個緩存的大小
innodb_buffer_pool_instances=設置內(nèi)存緩沖池實例數(shù)量
innodb_max_dirty_pages_pct=設置在InnoDB認為需要將日志刷新到磁盤之前,InnoDB允許臟頁占用其緩沖池的百分比
innodb_old_blocks_pct=設置InnoDB緩沖池的舊子列表所占百分比
innodb_old_blocks_time=一個緩沖塊在第一次訪問之后、下次訪問之前,需要在InnoDB緩沖池的舊子列表里待多少毫秒才能移動到新子列表里。默認值為0。表示的是,插到舊子列表里的緩存塊,在第一次訪問時會立即移到新子列表里去
innodb_additional_mem_pool_size=設置InnoDB存儲引擎用來存放各種內(nèi)部數(shù)據(jù)結構的內(nèi)存池的大小
innodb_log_buffer_size=設置InnoDB事務日志緩沖區(qū)的大小
innodb_flush_method=設置InnoDB用來刷新文件的方法
innodb_use_native_aio設置在Linux里是否使用異步I/O子系統(tǒng)
innodb_adaptive_flushing設置InnoDB是否會試圖通過使用工作負載水平更改緩沖池里臟頁刷新頻率的方式來避免I/O爆炸
innodb_flush_log_at_trx_commit=InnoDB日志的刷新行為:0:每秒寫入一次日志,并刷新到磁盤一次1:每提交一次寫入一次日志,并刷新到磁盤一次2:每提交一次寫入一次日志,但是每秒刷新到磁盤一次
innodb_io_capacity=設置InnoDB對于后臺任務每秒執(zhí)行I/O操作次數(shù)的近似限制
innodb_read_io_threads=設置InnoDB在執(zhí)行讀取操作時會時候多少個線程
innodb_write_io_threads=設置InnoDB在執(zhí)行寫入操作時會使用多少個線程
innodb_read_ahead_threshold=如果InnoDB檢測到某個模式的順序頁面方位是由innodb_read_ahead_threshold或多個來自同一范圍(頁面組)的頁面構成,那么它會在下一個范圍里執(zhí)行一個異步預讀取操作。默認值為56。允許的取值范圍為0~64
innodb_doublewrite設置InnoDB是否啟用了雙寫緩沖區(qū)
innodb_purge_threads=InnoDB使用了多少后臺線程來實現(xiàn)清除操作(將所有事務都不再需要的待刪除行刪除掉)
innodb_purge_batch_size=重做日志記錄的數(shù)量
innodb_max_purge_lag=InnoDB維護著一個清除線程,它可以清除刪除操作或更新操作標記的待刪除的行。如果小批量行被插入和刪除的頻率差不多相同,啊呢么清除線程可能會落后,進而導致大量待刪除行不能及時清除,而占用著本應該釋放的空間。innodb_max_purge_lag變量控制著如何延遲INSERT、DELETE和UPDATE語句,讓它們適當放慢速度以便清除線程能夠追上它們的進度。默認為0(即不延遲)。如果把此變量設置為一個非零值,那么延遲大約是((n/innodb_max_purge_lag) x10 ) – 5毫秒,其中的n是在執(zhí)行過程中會把一些行標記為待刪除的事務的數(shù)量
innodb_file_per_table如果此變量被設置為0(默認值),InnoDB將在其系統(tǒng)表空間里創(chuàng)建新表。如果此變量被設置為1,InnoDB將為每個新表分別創(chuàng)建一個獨立表空間:在數(shù)據(jù)庫目錄里為每一個新表單獨創(chuàng)建一個.ibd文件來存放該表的內(nèi)容。在這種情況下,系統(tǒng)表空間只會用于InnoDB數(shù)據(jù)目錄條目,而不會用于數(shù)據(jù)或索引存儲。此變量只影響InnoDB如何創(chuàng)建新表。不管如何更改此變量的值,InnoDB存儲引擎總是可以訪問已經(jīng)在系統(tǒng)表空間或獨立表空間里創(chuàng)建的表
innodb_autoextend_increment=當某個自擴展表空間快要被填滿時,InnoDB存儲引擎將自動使用此變量的值作為第增量去增加那個表空間的大小。指定值的單位為MB。此變量的默認值是8,最大值是1000
innodb_file_format=如果啟用了innodb_file_per_table,則它指的是InnoDB新表所使用的格式。默認格式為Antelope;另一個允許值為Barracuda。使用Barracuda可以啟用不被Antelope支持的功能,如COMPRESSED行格式
innodb_file_format_check=InnoDB系統(tǒng)表空間包含有一個標志,它表示的是表空間里使用的最高版本的文件格式。此變量會在服務器啟動時設置,主要用于控制InnoDB是否要檢查這個標志,以確定此格式版本比InnoDB支持的那個版本更高。如果啟用此變量(默認值),并且該格式版本更高,那么啟動會失敗,并產(chǎn)生一個錯誤。如果該格式版本不夠高,那么InnoDB會將innodb_file_format_max設置成該格式
innodb_file_format_max=參考innodb_file_format_check的描述
innodb_stats_on_metadataInnoDB是否要更新與那些與表元數(shù)據(jù)訪問語句(如SHOW INDEX或SHOW TABLE STATUS)有關的統(tǒng)計信息,或者更新那些與訪問STATISTICS表和執(zhí)行TABLES INFORMATION_SCHEMA語句所得到的各張表有關的統(tǒng)計信息。其效果與運行ANALYZE TABLE相類似。默認值為ON
innodb_stats_sample_pages=在MySQL 5.5里,它指的是用于估計統(tǒng)計信息的InnoDB樣本的索引頁數(shù)量。默認值為8。自MySQL 5.6.3起,此變量已被棄用,請使用innodb_stats_transient_sample_pages
innodb_stats_method=服務器在InnoDB表統(tǒng)計器索引鍵的分布概率時,應該把NULL值視為相同,還是視為不同??稍O置的值包括有:nulls_equal(所有的NULL值在同一個組里)、nulls_unequal(每個NULL值單獨成為一組)或nulls_ignored(忽略NULL值)
timed_mutexes =設置是否要搜集InnoDB的互斥時間信息,默認值為OFF
innodb-status-file =設置在data目錄中的innodb_status
innodb_fast_shutdown=當此變量的值為0或1時,它表示的是InnoDB是否使用其較快速的關機方法(它會跳過某些正常情況下會執(zhí)行的操作)。當取值為2時,InnoDB會刷新其日志,然后停止
innodb_force_load_corrupted =設置InnoDB在啟動時是否加載已標記為損壞的表
innodb_force_recovery=此變量的值通常為0,但是可以被設置為1~6的某個值,以便讓服務器在崩潰后即使InnoDB恢復失敗也可以再次啟動
innodb_checksums設置InnoDB表是否啟用校驗計算
transaction-isolation=可供設置的值:READ-UNCOMMITTED、READ-COMMITTED、REPEATABLE-READ、SERIALIZABLE,默認的值為: REPEATABLE-READ,事務隔離級別設置的不同,對二進制日志登記格式影響非常大
transaction_prealloc_size=為處理構成某個事務的語句而分配的那個緩沖區(qū)的大小。與那些由transaction_alloc_block_size變量控制的內(nèi)存分配塊不同,這個緩沖區(qū)在最后兩條語句之間不會被釋放
transaction_alloc_block_size=為處理這樣一些語句而分配的臨時內(nèi)存的塊大?。涸谑聞仗峤恢畷r,在將事務寫入二進制日志之前,需要存儲為事務的一部分的語句
completion_type=事務結束類型:1、如果該值為0(默認),COMMIT和ROLLBACK不受影響; 2、如果該值為1,COMMIT和ROLLBACK分別等同于COMMIT AND CHAIN和ROLLBACK AND CHAIN。(新事務用剛剛結束的事務相同的間隔等級立即啟動); 3、如果該值為2,COMMIT和ROLLBACK分別等同于COMM它RELEASE和ROLLBACK RELEASE(事務終止后,服務器斷開);
innodb_support_xa設置支持XA事務
innodb_table_locks當禁用自動提交模式時,InnoDB會如何處理LOCK TABLE語句,以獲得InnoDB表的寫鎖。如果此變量的值是ON(默認值),InnoDB將申請到一個內(nèi)部表鎖。如果此變量的值是OFF,InnoDB要一直等到?jīng)]有任何其他線程鎖定那個表時才能執(zhí)行LOCK TABLE語句。禁用此變量可以在一定程度上防止應用程序在自動提交模式已被禁用的情況下發(fā)出LOCK TABLE語句時遭遇死鎖
innodb_lock_wait_timeout=設置等待某個事務鎖的秒數(shù)
innodb_locks_unsafe_for_binlog設置InnoDB如何處理索引行鎖定
innodb_spin_wait_delay=設置旋轉鎖的兩次輪詢之間的最大等待值
innodb_sync_spin_loops=設置線程在被掛起之前等待InnoDB釋放互斥信號的次數(shù)
innodb_commit_concurrency=設置可以同時提交多少個線程
innodb_thread_concurrency=設置InnoDB嘗試維護的線程數(shù)量上限
innodb_concurrency_tickets=當某個線程想進入InnoDB時,只有當線程數(shù)量小于innodb_commit_concurrency
innodb_replication_delay=如果在從服務器上已達到innodb_thread_concurrency表明的那個限制,那么此變量便是復制線程的延遲時間(單位為毫秒)。默認值為0
innodb_thread_sleep_delay=設置InnoDB線程在被放入InnoDB等待隊列之前休眠的時間(單位為毫秒)
innodb_rollback_on_timeout設置InnoDB存儲引擎在事務超時時的行為
innodb_rollback_segments=在一個事務里,InnoDB在系統(tǒng)表空間里會使用多少回滾段。默認值為128。此變量是在MySQL 5.5.11里引入的。在5.6.3里,它被替換成了innodb_undo_logs
myisam_data_pointer_size=設置MyISAM索引文件的行指針的字節(jié)大小
myisam_use_mmap設置服務器在讀寫MyISAM表時是否需要使用內(nèi)存映射
keep_files_on_create如果在創(chuàng)建MySAM表的CREATE TABLE語句里明確給出了DATA DIRECTORY或INDEX DIRECTORY選項,并且服務器在給定的目錄里分別找到了一個已有的數(shù)據(jù)文件或索引文件,那么它會返回一個錯誤。當沒有使用DATA DIRECTORY或INDEX DIRECTORY選項來指定數(shù)據(jù)文件或索引文件的存放位置時,keep_files_on_create變量會控制服務器如何創(chuàng)建MyISAM表。如果此變量的值為OFF(默認值),并且服務器找到了一個已有的.MYD數(shù)據(jù)文件或.MYI索引文件,那么它會覆蓋該文件。如果此變量的值為ON,服務器會返回一個錯誤
myisam-block-size=設置被MyISAM索引頁使用的塊大小
delay-key-write=僅用于MyISAM表,且要求在創(chuàng)建表時使用了DELAY_KEY_WRITE選項。在啟用時,key buffer不會在每一次索引更新時都予以清空,而是在表關閉時才執(zhí)行key buffer清空操作。OFF表示忽略DELAY_KEY_WRITE,ON表示MySQL接受CREATE TABLE時使用的任何DELAY_KEY_WRITE選項,ALL表示所有新打開的表遵循此特性
preload_buffer_size設置MySQL服務器在使用LOAD INDEX語句預加載有關索引時會分配一個多大的緩沖區(qū)
myisam_stats_method=服務器在為MyISAM表統(tǒng)計其索引鍵的分布概率時,應該把NULL值視為相同,還是視為不同??稍O置的值包括有:nulls_equal(所有的NULL值在同一個組里)、nulls_unequal(每個NULL值單獨成為一組)或nulls_ignored(忽略NULL值)
myisam-recover-options=用于創(chuàng)建啟動MySQL時MyISAM 的自動恢復。myisam‐recover‐options選項能使用以下值:DEFAULT:不用備份,強制,或快速檢查進行恢復。BACKUP:如果數(shù)據(jù)文件在恢復時被更改,將MYD 文件的備份保存為 tbl_name‐datetime.BAK。FORCE:即使會從.MYD 文件丟失多于一行仍運行恢復。QUICK:如果沒有任何delete塊就不檢查行。
myisam_repair_threads=設置在修復操作過程中用來創(chuàng)建MyISAM表使用的線程數(shù)
key_buffer_size=設置用于緩存MyISAM表索引塊的緩沖區(qū)大小
key_cache_block_size=設置MyISAM鍵緩存的塊大小
key_cache_age_threshold=設置在被移到暖子鏈之前,未使用的緩沖塊在MyISAM鍵緩存的熱子鏈里可以保留多久
key_cache_division_limit=在MySQL的Key Cache中所使用的LRU算法并不像傳統(tǒng)的算法一樣僅僅只是通過訪問頻率以及最后訪問時間來通過一個唯一的鏈表實現(xiàn),而是將其分成了兩部分。一部分用來存放使 用比較頻繁的Hot Cache Lock(Hot Chain),被稱作Hot Area,另外一部分則用來存放使用不太頻繁的Warm Cache Block(Warm Chain),也被稱作Warm Area。這樣做的目的主要是為了保護使用比較頻繁的Cache Block更不容易被換出。而key_cache_division_limit參數(shù)則正是用于告訴MySQL該如何劃分整個Cache Chain劃分為Hot Chain和Warm Chain兩部分,參數(shù)值為Warm Chain占整個Chain 的百分比值。設置范圍1~100,系統(tǒng)默認為100,也就是只有Warm Chain
read_buffer_size=設置對表進行順序掃描的那個線程所使用的緩存區(qū)的大小
read_rnd_buffer_size=設置在排序后,讀取結果數(shù)據(jù)的緩沖區(qū)大小
delayed_queue_size=在某個特定的管理程序隊列中有多少個行未執(zhí)行,則INSERT DELAYED處理線程會等待直到隊列中有空間為止,防止mysqld不會把所有存儲器都用于被延遲的存儲隊列
max_delayed_threads=設置為處理INSERT DELAYED語句而允許創(chuàng)建的最大線程數(shù)
delayed_insert_limit=插入delayed_insert_limit 延遲行后,INSERT DELAYED 處理器線程檢查是否有掛起的SELECT語句。如果有,在繼續(xù)插入延遲的行之前,允許它們先執(zhí)行
delayed_insert_timeout=INSERT DELAYED 處理器線程的隊列中沒有多余的行時表被解鎖,多長時間內(nèi)沒有收到新的INSERT DELAYED,則終止
ft_boolean_syntax=使用IN BOOLEAN MODE執(zhí)行的布爾全文搜索支持的操作符系列,默認變量值為 '+ -><()~*:“”&
ft_max_word_len=ULLTEXT索引中所包含的字的最大長度。注釋:更改該變量后必須重建FULLTEXT索引。應使用REPAIR TABLE tbl_name QUICK
ft_min_word_len=FULLTEXT索引中所包含的字的最小長度。注:更改該變量后必須重建FULLTEXT索引。應使用REPAIR TABLE tbl_name QUICK
ft_query_expansion_limit=使用WITH QUERY EXPANSION進行全文搜索的最大匹配數(shù)
ft_stopword_file=用于讀取全文搜索的停止字清單的文件。該文件中的所有字都會用到;注釋不重要。默認情況下,使用內(nèi)嵌式停止字清單(如myisam/ft_static.c文件中所定義)。將該變量設置為空字符串(‘’)則禁用停止字過濾。注:更改該變量或停止字文件的內(nèi)容后必須重建FULLTEXT索引。應使用REPAIR TABLE tbl_name QUICK
bulk_insert_buffer_size=MyISAM使用專用樹狀緩存來使INSERT、SELECT、INSERT … VALUES (…)、(…)和LOAD DATA INFILE的大塊插入更快。該變量用每線程的字節(jié)數(shù)限制緩存樹的大小。將它設置為0禁用優(yōu)化。注:只有向非空表添加數(shù)據(jù)時才使用該緩存,默認值是8MB
myisam_sort_buffer_size=在執(zhí)行類似ALTER TABLE、CREATE INDEX和REPAIR TABLE這樣的操作期間,需要分配緩沖區(qū),以便對MyISAM表的索引進行排序。此變量指定的便是該緩沖區(qū)的大小
myisam_max_sort_file_size=對于REPAIR TABLE、ALTER TABLE或LOAD DATA等語句,在對MyISAM表進行重建時,既可以使用一個臨時文件,頁可以使用鍵緩存。具體使用哪一種方法由這個變量的值來決定。如果臨時文件的大小可能會大于這個值,則需要使用鍵緩存
myisam_mmap_size=設置壓縮時的MyISAM表文件在進行內(nèi)存映射時使用的最大內(nèi)存量
external-locking外部鎖定用于多進程條件下為MyISAM數(shù)據(jù)表進行鎖定。當外部鎖定(external-locking)起作用時,每個進程若要訪問數(shù)據(jù)表,則必須等待之前的進程完成操作并解除鎖定。由于服務器訪問數(shù)據(jù)表時經(jīng)常需要等待解鎖,因此在單服務器環(huán)境下external locking會讓MySQL性能下降
skip-external-locking 禁用外部鎖定
concurrent_insert=對于在數(shù)據(jù)文件的中間沒用空洞的MyISAM表,MySQL服務器允許在對已有行進行檢索的同時在該表的末尾插入新行。此變量控制著服務器是否允許并發(fā)插入。此變量的值為0(或NEVER)時,會禁用此功能。此變量的值為1(或AUTO)時,會啟用此功能。此變量的值為2(或ALWAYS)時,會對所有的MyISAM表啟用并發(fā)插入,不管它們的數(shù)據(jù)文件里是否有空洞;此時,新行將被添加到正被使用的那個表的末尾,或者插到空洞處。默認值為1
skip-concurrent-insert禁用concurrent-insert
low-priority-updates給DML比SELECT更低的優(yōu)先級
performance_schema=開啟performance_schema性能優(yōu)化的引擎
performance_schema_events_waits_history_long_size=events_waits_history_long表的行數(shù)
performance_schema_events_waits_history_size=events_waits_history表的每個線程的行數(shù)
performance_schema_max_cond_classes=條件工具的最大數(shù)量
performance_schema_max_cond_instances=條件工具對象的最大數(shù)量
performance_schema_max_file_classes=文件工具的最大數(shù)量
performance_schema_max_file_handles=打開文件對象的最大數(shù)量
performance_schema_max_file_instances=工具文件對象的最大數(shù)量
performance_schema_max_mutex_classes=互斥鎖工具的最大數(shù)量
performance_schema_max_mutex_instances=互斥鎖對象的最大數(shù)量
performance_schema_max_rwlock_classes=讀寫鎖工具的最大數(shù)量
performance_schema_max_rwlock_instances=讀寫鎖對象的最大數(shù)量
performance_schema_max_table_handles=打開表對象的最大數(shù)量
performance_schema_max_table_instances=打開表對象工具的最大數(shù)量
performance_schema_max_thread_classes=線程工具的最大數(shù)量
performance_schema_max_thread_instances=線程對象工具的最大數(shù)量

全局變量

全局變量可以通過SET命令設置,也可以在啟動mysql時,在指定的文件中配置

參數(shù)說明
autocommit設置事務處理的自動提交模式。默認值為1,因此自動提交功能是啟用的,并且語句會立即生效。本質(zhì)上,每條語句都是其自身的事務。將這個值設置為 0,可以禁用自動提交功能,如此一來,后續(xù)語句便只有等到提交完成(可以使用 COMMIT 語句,或者將 autocommit 設置為1來完成提交)之后才能生效。如果提交還未發(fā)生,則可以通過 ROLLBACK 來取消事務里的語句。將 autocommit 這時為1,可以重新啟用自動提交(并且會隱式提交所有掛起的事務)
back_logMySQL有的主要連接請求的數(shù)量。當主MySQL線程在短時間內(nèi)得到許多連接請求時發(fā)揮作用。主線程需要花一些時間(盡管很少)來檢查連接并啟動一個新線程。back_log值說明MySQL臨時停止響應新請求前在短時間內(nèi)可以堆起多少請求。如果你需要在短時間內(nèi)允許大量連接,可以增加該數(shù)值。換句話說,該值為“進”TCP/IP連接幀聽隊列的大小。操作系統(tǒng)有該隊列自己的限制值。該變量最大值請查閱OS文檔。企圖將back_log設置為高于你的操作系統(tǒng)限值是徒勞無益的
default_password_lifetime密碼過期時間
disconnect_on_expired_password密碼過期時的處理
expire_logs_days二進制日志的過期時間
flush執(zhí)行SQL語句后向硬盤上清空更改。一般情況執(zhí)行SQL語句后 MySQL向硬盤寫入所有更改,讓操作系統(tǒng)處理與硬盤的同步
flush_time刷新緩存時間
foreign_key_checks外鍵檢查
have_compress是否可以使用 COMPRESS() and UNCOMPRESS()
have_geometry是否支持地理信息類型
have_dynamic_loading是否可以動態(tài)加載插件
have_opensslhave_ssl 是否支持ssl連接
have_profiling是否可以顯示sql語句執(zhí)行時使用的資源
have_statement_timeoutsql語句執(zhí)行超時
have_symlink是否支持符號連接
identitylast_insert_id
init_connect設定在每個客戶端與mysqld建立連接時事先執(zhí)行的一個或多個(彼此間用分號隔開)SQL語句,但對于具有SUPER權限的用戶來說,此功能無效
init-file服務器開始后默認執(zhí)行的sql文件
insert_id當插入自動增長列類型時,insert要使用的值
interactive_timeout交互式連接的超時時間,mysqld進程等待一個已經(jīng)建立連接的交互式客戶端的后續(xù)命令之前所經(jīng)過的秒數(shù),默認為28800
internal_tmp_disk_storage_engine臨時表的存儲引擎
join_buffer_sizemysqld用于平面索引掃描(plain index scans)、范圍索引掃描或不使用索引的全表掃描時所能夠使用的最小緩沖
local_infile是否可以運行LOAD_DATA_LOCAL
lock_wait_timeout鎖超時時間,設置等待數(shù)據(jù)鎖的超時時間,單位為秒
locked_in_memory是否把mysqld鎖在內(nèi)存
log_timestamps日志時區(qū)
log_error_verbosity是否顯示更多信息到日志
long_query_time慢查詢時間,設定區(qū)別慢查詢與一般查詢的語句執(zhí)行時間長度。這里的語句執(zhí)行時長為實際的執(zhí)行時間,而非在CPU上的執(zhí)行時長,因此,負載較重的服務器上更容易產(chǎn)生慢查詢。其最小值為0,默認值為10,單位是秒鐘。它也支持毫秒級的解析度。作用范圍為全局或會話級別,可用于配置文件,屬動態(tài)變量
max_allow_packet每個報文的最大大小
max_connect_errors最大不成功連接,到達后將阻塞,設定客戶端連接至mysqld時的最大錯誤嘗試次數(shù)
max_connections最大并發(fā)連接數(shù),所有用戶同時連接的最大數(shù)目,超過此數(shù)目的連接將導致請求中斷
max_digest_lengthsql運行摘要的最大字節(jié)數(shù)
max_error_count被SHOW ERRORS和SHOW WARNINGS語句顯示的最大數(shù)量,設置為SHOW ERRORS或SHOW WARNINGS語句所保留的關于錯誤、警告或注意信息條目的最大數(shù)。作用范圍為全局或會話級別,可用于配置文件,屬動態(tài)變量
max_execution_timeselect語句的超時時間
max_heap_table_size用戶創(chuàng)建的內(nèi)存表的最大大小,設置每個用戶創(chuàng)建的MEMORY表所能夠使用的最大內(nèi)存空間
max_join_size語句最大的行或行聯(lián)合,置SELECT語句執(zhí)行時所能夠檢查的行數(shù)(單表)或行組合(多表查詢)的最大值。此參數(shù)可以阻止對鍵的錯誤使用而導致的需要執(zhí)行較長時間的查詢操作,因此,其尤其適用于有用戶經(jīng)常使用不帶WHERE子句的查詢場景中。有效取值范圍為1-18446744073709551615,默認為18446744073709551615,這可以被理解為不限制。作用范圍為全局或會話級別,可用于配置文件,屬動態(tài)變量
max_length_for_sort_data決定使用filesort算法的索引值大小,filesort算法改進版所能夠使用的字段最大長度值。有效取值范圍是4-8388608。MySQL的filesort算法有兩個版本,即原始版本和修改版本,字段長度大于max_length_for_sort_data設定的將使用原始版本,小于此參數(shù)值的則使用修改版本在排序緩沖(sort buffer)中完成排序。在使用超出字段超出指定長度時使用修改版本算法,由于可能需要更多的I/O操作,將會導致修改版算法執(zhí)行速度更慢,而不是更快。作用范圍為全局或會話級別,可用于配置文件,屬動態(tài)變量
max_prepared_stmt_count最大預編譯語句數(shù)量,默認16382,設定prepared語句在服務器總數(shù)上限
max_relay_log_size最大復制relay日志大小,中繼日志的大小
max_seeks_for_key索引掃描的最大數(shù),查詢優(yōu)化器在進行基于鍵的查找時會使用此變量。如果某個索引的差異度比較低(只有很少量的唯一值),那么優(yōu)化器可能會認為在執(zhí)行鍵查找操作時需要進行多次查找,從而會采用全表掃描的方式來代替。把此變量設置成某個小一點的值,則會使優(yōu)化器認為在執(zhí)行鍵查找時最多只需要指定數(shù)量的索引尋找,從而使其更傾向于選擇使用索引,而不會執(zhí)行全表掃描
max_sort_length排序數(shù)據(jù)的字節(jié)數(shù),設置mysqld執(zhí)行數(shù)值排序時所使用的字節(jié)數(shù),剩余的將被忽略。作用范圍為全局級別,可用于配置文件,屬動態(tài)變量
max_sp_recursion_depth存儲過程的遞歸深度
max_user_connections同時連接的mysql用戶數(shù),任一用戶同時連接的最大數(shù)目
max_write_lock_count執(zhí)行最大數(shù)量寫鎖后,可以執(zhí)行待執(zhí)行的讀鎖,在對某個表使用了max_write_lock_count個寫鎖定之后,對于那些正在等待獲得該表讀鎖的語句,服務器將適當提升它們的優(yōu)先級
min_examined_row_limit查詢記錄少于這個,不記錄到慢查詢?nèi)罩?/td>
net_buffer_length連接和結果緩存的初始大小,設置服務器和客戶之間通訊的使用的緩沖區(qū)長度
net_read_timeout服務器讀超時,設置mysqld等待從客戶端接收更多數(shù)據(jù)的超時時長,默認值為30
net_retry_timeout服務器讀寫重試超時
net_write_timeout設置mysqld等待向客戶端傳輸數(shù)據(jù)的超時時長,默認值為60

my.cnf配置解析

       my.cnf中的配置,都分有各個模塊,例如:[mysqld] [client] [mysqladmin]等等。各個模塊下的參數(shù)指令都各自屬于自己的模塊,和其他模塊相當于隔離。而my.cnf這個配置文件,會被不同的進程所引用處理,例如:mysqld 、 mysqladmin 等等。如果mysqld引入了my.cnf這個配置文件,它只會讀取[mysqld]模塊下的所有參數(shù)指令,不會搭理其他模塊下的。

       但有例外,就是上面兩個命令 !include 和 !includedir。不管他們兩個參數(shù)指令,放在my.cnf中的哪一個模塊下,任何地方,都會被處理。而新引入的文件中,如果有[mysqld]模塊參數(shù)指令,就會再添加,沒有則什么都不做。!includedir 表示包含指定路徑的文件 和 !includedir 指定的這個路徑下面的配置文件

#*** client options 相關選項 開始***#
#以下選項會被MySQL客戶端應用讀取。注意只有MySQL附帶的客戶端應用程序保證可以讀取這段內(nèi)容。如果你想你自己的MySQL應用程序獲取這些值。需要在MySQL客戶端庫初始化的時候指定這些選項。
[client]
port = 3309
socket =  /usr/local/mysql/tmp/mysql.sock
#*** client options 相關選項 結束***#

#*** mysqld options 相關選項 開始***#
[mysqld]
#包含的配置文件 ,把用戶名,密碼文件單獨存放
!include  /usr/local/mysql/etc/mysqld.cnf 
 
port = 3309
bind-address = 0.0.0.0
#表示是本機的序號為1,唯一
server-id = 1 
 
socket =  /usr/local/mysql/tmp/mysql.sock
pid-file =  /usr/local/mysql/var/mysql.pid
basedir =  /usr/local/mysql/
datadir =  /usr/local/mysql/var/
#此目錄被 MySQL用來保存臨時文件.例如,它被用來處理基于磁盤的大型排序,和內(nèi)部排序一樣,以及簡單的臨時表.如果你不創(chuàng)建非常大的臨時文件,將其放置到 swapfs/tmpfs 文件系統(tǒng)上也許比較好。另一種選擇是你也可以將其放置在獨立的磁盤上.你可以使用”;”來放置多個路徑,他們會按照 roud-robin 方法被輪詢使用.
tmpdir =  /usr/local/mysql/tmp/ 

#當 slave 執(zhí)行 load data infile 時用
slave-load-tmpdir =  /usr/local/mysql/tmp/ 
 
 
#*** skip options 相關選項 ***#
#禁止 MySQL 對外部連接進行 DNS 解析,使用這一選項可以消除 MySQL 進行 DNS 解析的時間。但需要注意,如果開啟該選項,則所有遠程主機連接授權都要使用 IP 地址方式,否則 MySQL 將無法正常處理連接請求!
skip-name-resolve 

 #不能使用連接文件,多個客戶可能會訪問同一個數(shù)據(jù)庫,因此這防止外部客戶鎖定 MySQL 服務器。 該選項默認開啟
skip-symbolic-links 

 #不使用系統(tǒng)鎖定,要使用 myisamchk,必須關閉服務器 ,避免 MySQL的外部鎖定,減少出錯幾率增強穩(wěn)定性。
skip-external-locking 

 #啟動 mysql,不啟動復制
skip-slave-start 

 #開啟該選項可以徹底關閉 MySQL 的 TCP/IP 連接方式,如果 WEB 服務器是以遠程連接的方式訪問 MySQL 數(shù)據(jù)庫服務器則不要開啟該選項!否則將無法正常連接! 如果所有的進程都是在同一臺服務器連接到本地的 mysqld, 這樣設置將是增強安全的方法
skip-networking 

#把SYSDATE 函數(shù)編程為 NOW的別名 
sysdate-is-now = 1 
 
#*** 系統(tǒng)資源相關選項 ***#
#接受隊列,對于沒建立 tcp 連接的請求隊列放入緩存中,隊列大小為 back_log,受限制與 OS 參數(shù),試圖設定 back_log 高于你的操作系統(tǒng)的限制將是無效的。默認值為 50。對于 Linux 系統(tǒng)推薦設置為小于512的整數(shù)。如果系統(tǒng)在一個短時間內(nèi)有很多連接,則需要增大該參數(shù)的值
back_log = 50 

#指定MySQL允許的最大連接進程數(shù)。如果在訪問數(shù)據(jù)庫時經(jīng)常出現(xiàn)"Too Many Connections"的錯誤提 示,則需要增大該參數(shù)值。
max_connections = 1000 

#如果某個用戶發(fā)起的連接 error 超過該數(shù)值,則該用戶的下次連接將被阻塞,直到管理員執(zhí)行 flush hosts ; 命令或者服務重啟, 防止黑客 , 非法的密碼以及其他在鏈接時的錯誤會增加此值
max_connect_errors = 10000 

# MySQL打開的文件描述符限制,默認最小1024;當open_files_limit沒有被配置的時候,比較max_connections*5和ulimit-n的值,哪個大用哪個,當open_file_limit被配置的時候,比較open_files_limit和max_connections*5的值,哪個大用哪個。
open_files_limit = 10240 

#連接超時之前的最大秒數(shù),在 Linux 平臺上,該超時也用作等待服務器首次回應的時間
connect-timeout = 10 

#等待關閉連接的時間
wait-timeout = 28800 

#關閉連接之前,允許 interactive_timeout(取代了wait_timeout)秒的不活動時間。客戶端的會話 wait_timeout 變量被設為會話interactive_timeout 變量的值。如果前端程序采用短連接,建議縮短這2個值, 如果前端程序采用長連接,可直接注釋掉這兩個選項,默認配置(8小時)  
interactive-timeout = 28800 

#從服務器也能夠處理網(wǎng)絡連接中斷。但是,只有從服務器超過slave_net_timeout 秒沒有從主服務器收到數(shù)據(jù)才通知網(wǎng)絡中斷
slave-net-timeout = 600 

#從服務器讀取信息的超時
net_read_timeout = 30 

#從服務器寫入信息的超時
net_write_timeout = 60 

#如果某個通信端口的讀操作中斷了,在放棄前重試多次
net_retry_count = 10 

#包消息緩沖區(qū)初始化為 net_buffer_length 字節(jié),但需要時可以增長到 max_allowed_packet 字節(jié)
net_buffer_length = 16384 

# 服務所能處理的請求包的最大大小以及服務所能處理的最大的請求大小(當與大的BLOB 字段一起工作時相當必要), 每個連接獨立的大小.大小動態(tài)增加。 設置最大包,限制server接受的數(shù)據(jù)包大小,避免超長SQL的執(zhí)行有問題 默認值為16M,當MySQL客戶端或mysqld
服務器收到大于 max_allowed_packet 字節(jié)的信息包時,將發(fā)出“信息包過大”錯誤,并關閉連接。對于某些客戶端,如果通信信息包過大,在執(zhí)行查詢期間,可能會遇到“丟失與 MySQL 服務器的連接”錯誤。默認值 16M。
max_allowed_packet = 64M

# 所有線程所打開表的數(shù)量. 增加此值就增加了mysqld所需要的文件描述符的數(shù)量這樣你需要確認在[mysqld_safe]中 “open-files-limit” 變量設置打開文件數(shù)量允許至少4096
table_cache = 512 

# 線程使用的堆大小. 此容量的內(nèi)存在每次連接時被預留.MySQL 本身常不會需要超過 64K 的內(nèi)存如果你使用你自己的需要大量堆的 UDF 函數(shù)或者你的操作系統(tǒng)對于某些操作需要更多的堆,你也許需要將其設置的更高一點.默認設置足以滿足大多數(shù)應用
thread_stack = 192K 

# 我們在 cache 中保留多少線程用于重用.當一個客戶端斷開連接后,如果 cache 中的線程還少于 thread_cache_size,則客戶端線程被放入 cache 中.這可以在你需要大量新連接的時候極大的減少線程創(chuàng)建的開銷(一般來說如果你有好的線程模型的話,
這不會有明顯的性能提升.)服務器線程緩存這個值表示可以重新利用保存在緩存中線程的數(shù)量,當斷開連接時如果緩存中還有空間,那么客戶端的線程將被放到緩存中,如果線程重新被請求,那么請求將從緩存中讀取,如果緩存中是空的或者是新的請求,那么這個線程將被重新創(chuàng)建,
如果有很多新的線程,增加這個值可以改善系統(tǒng)性能.通過比較 Connections 和 Threads_created 狀態(tài)的變量,可以看到這個變量的作用
根據(jù)物理內(nèi)存設置規(guī)則如下:
1G  —> 8
2G  —> 16
3G  —> 32
大于3G  —> 64
thread_cache_size = 20 

# 此允許應用程序給予線程系統(tǒng)一個提示在同一時間給予渴望被運行的線程的數(shù)量.該參數(shù)取值為服務器邏輯CPU數(shù)量×2,在本例中,服務器有 2 顆物理CPU,而每顆物理CPU又支持H.T超線程,所以實際取值為 4 × 2 = 8.設置 thread_concurrency的值的正確與否, 
對 mysql 的性能影響很大, 在多個 cpu(或多核)的情況下,錯誤設置了 thread_concurrency 的值, 會導致 mysql 不能充分利用多 cpu(或多核),出現(xiàn)同一時刻只能一個 cpu(或核)在工作的情況。 thread_concurrency 應設為 CPU 核數(shù)的 2 倍.比如有一個雙核的 CPU, 
那么 thread_concurrency 的應該為 4; 2 個雙核的 cpu,thread_concurrency 的值應為 8,屬重點優(yōu)化參數(shù)
thread_concurrency = 8 
 
#*** qcache settings 相關選項 ***#
# 不緩存查詢大于該值的結果.只有小于此設定值的結果才會被緩沖,  此設置用來保護查詢緩沖,防止一個極大的結果集將其他所有的查詢結果都覆蓋.
query_cache_limit = 2M 

# 查詢緩存分配的最小塊大小.默認是 4KB,設置值大對大數(shù)據(jù)查詢有好處,但如果你的查詢都是小數(shù)據(jù)查詢,就容易造成內(nèi)存碎片和浪費
查詢緩存碎片率 = Qcache_free_blocks / Qcache_total_blocks * 100%
如果查詢緩存碎片率超過 20%,可以用 FLUSH QUERY CACHE 整理緩存碎片,或者試試減小query_cache_min_res_unit,如果你的查詢都是小數(shù)據(jù)量的話。
查詢緩存利用率 = (query_cache_size – Qcache_free_memory) / query_cache_size *100%
查詢緩存利用率在 25%以下的話說明 query_cache_size 設置的過大,可適當減小;查詢緩存利用率在 80%以上而且 Qcache_lowmem_prunes > 50 的話說明 query_cache_size 可能有點小,要不就是碎片太多。
查詢緩存命中率 = (Qcache_hits – Qcache_inserts) / Qcache_hits * 100%
query_cache_min_res_unit = 2K 

#指定 MySQL 查詢緩沖區(qū)的大小??梢酝ㄟ^在 MySQL 控制臺執(zhí)行以下命令觀察:
代碼:
> SHOW VARIABLES LIKE '%query_cache%';
> SHOW STATUS LIKE 'Qcache%';如果 Qcache_lowmem_prunes 的值非常大,則表明經(jīng)常出現(xiàn)緩沖不夠的情況;
如果 Qcache_hits 的值非常大,則表明查詢緩沖使用非常頻繁,如果該值較小反而會影響效率,那么可以考慮不用查詢緩沖; Qcache_free_blocks,如果該值非常大,則表明緩沖區(qū)中碎片很多。
memlock # 如果你的系統(tǒng)支持 memlock() 函數(shù),你也許希望打開此選項用以讓運行中的 mysql 在在內(nèi)存高度
緊張的時候,數(shù)據(jù)在內(nèi)存中保持鎖定并且防止可能被 swapping out,此選項對于性能有益
query_cache_size = 64M  

 
#*** default settings 相關選項 ***#
# 當創(chuàng)建新表時作為默認使用的表類型,如果在創(chuàng)建表示沒有特別執(zhí)行表類型,將會使用此值
default_table_type = InnoDB 

#服務器時區(qū)
default-time-zone = system 

#server 級別字符集
character-set-server = utf8 

#默認存儲引擎
default-storage-engine = InnoDB 

 
#*** tmp && heap settings 相關選項 ***#
# 臨時表的最大大小,如果超過該值,則結果放到磁盤中,此限制是針對單個表的,而不是總和.
tmp_table_size = 512M 

#獨立的內(nèi)存表所允許的最大容量.此選項為了防止意外創(chuàng)建一個超大的內(nèi)存表導致永盡所有的內(nèi)存資源.
max_heap_table_size = 512M 

 
#*** log settings 相關選項 ***#
# 打開二進制日志功能.在復制(replication)配置中,作為 MASTER 主服務器必須打開此項.如果你需要從你最后的備份中做基于時間點的恢復,你也同樣需要二進制日志.這些路徑相對于 datadir
log-bin = mysql-bin 

#表示slave將復制事件寫進自己的二進制日志 
log_slave_updates = 1 

#二進制的索引文件名 
log-bin-index = mysql-bin.index 

# 定義relay_log的位置和名稱,如果值為空,則默認位置在數(shù)據(jù)文件的目錄,文件名為host_name-relay-bin.nnnnnn(By default, relay log file names have the form host_name-relay-bin.nnnnnn in the data directory); 
relay-log = relay-log 

#relay-log的索引文件名 
relay_log_index = relay-log.index  

# 將警告打印輸出到錯誤 log 文件.如果你對于MySQL有任何問題,你應該打開警告 log 并且仔細審查錯誤日志,查出可能的原因. 
log-warnings = 1 

#錯誤日志路徑 
log-error =  /usr/local/mysql/log/mysql.err 

#參數(shù) log_output 指定了慢查詢輸出的格式,默認為 FILE,你可以將它設為 TABLE,然后就可以查詢 mysql 架構下的 slow_log 表了 
log_output = FILE 

#指定是否開啟慢查詢?nèi)罩?該參數(shù)要被slow_query_log取代,做兼容性保留) 
log_slow_queries 

# 指定是否開啟慢查詢?nèi)罩? 慢查詢是指消耗了比 “l(fā)ong_query_time” 定義的更多時間的查詢.如果 log_long_format 被打開,那些沒有使用索引的查詢也會被記錄.如果你經(jīng)常增加新查詢到已有的系統(tǒng)內(nèi)的話. 一般來說這是一個好主意, 
slow_query_log = 1 

# 設定慢查詢的閥值,超出次設定值的SQL即被記錄到慢查詢?nèi)罩荆笔≈禐?0s.所有的使用了比這個時間(以秒為單位)更多的查詢會被認為是慢速查詢.不要在這里使用”1″, 否則會導致所有的查詢,甚至非??斓牟樵冺摫挥涗浵聛?由于MySQL 目前時間的精確度只能達到秒的級別). 
long-query-time = 1 

# 在慢速日志中記錄更多的信息.一般此項最好打開,打開此項會記錄使得那些沒有使用索引的查詢也被作為到慢速查詢附加到慢速日志里 
log_long_format 

# 指定慢日志文件存放位置,可以為空,系統(tǒng)會給一個缺省的文件host_name-slow.log 
slow_query_log_file =  /usr/local/mysql/log/slow.log 

#如果運行的SQL語句沒有使用索引,則mysql數(shù)據(jù)庫同樣會將這條SQL語句記錄到慢查詢?nèi)罩疚募小?
log-queries-not-using-indexes 

#記錄那些由于查找了多余1000次而引發(fā)的慢查詢 
min_examined_row_limit=1000    

#記錄那些慢的optimize table,analyze table和alter table語句 
long-slow-admin-statements    

#記錄由Slave所產(chǎn)生的慢查詢 
log-slow-slave-statements 

#將所有到達MySQL Server的SQL語句記錄下來,默認關閉  
general_log = 1 

#general_log路徑 
general_log_file =  /usr/local/mysql/log/mysql.log 

# 如果二進制日志寫入的內(nèi)容超出給定值,日志就會發(fā)生滾動。你不能將該變量設置為大于1GB或小于4096字節(jié)。 默認值是1GB。如果你正使用大的事務,二進制日志還會超過max_binlog_size 
max_binlog_size = 1G 

# 標記relaylog允許的最大值,如果該值為0,則默認值為max_binlog_size(1G);如果不為0,則max_relay_log_size則為最大的relay_log文件大小; 
max_relay_log_size = 1G 

#是否自動清空不再需要中繼日志時。默認值為1(啟用) 
relay-log-purge = 1 

#超過 30 天的 binlog 刪除 
expire_logs_days = 30 

# 在一個事務中 binlog 為了記錄 SQL 狀態(tài)所持有的 cache 大小,如果你經(jīng)常使用大的,多聲明的事務,你可以增加此值來獲取更大的性能.所有從事務來的狀態(tài)都將被緩沖在 binlog 緩沖中然后在提交后一次性寫入到 binlog 中,如果事務比此值大, 會使用磁盤上的臨時文件來替代.此緩沖在每個連接的事務第一次更新狀態(tài)時被創(chuàng)建.session 級別 
binlog_cache_size = 1M 

#復制時忽略數(shù)據(jù)庫及表 
replicate-wild-ignore-table = mysql.% 

#定義復制過程中從服務器可以自動跳過的錯誤號,當復制過程中遇到定義的錯誤號,就可以自動跳過,直接執(zhí)行后面的SQL語句。
slave_skip_errors選項有四個可用值,分別為:off,all,ErorCode,ddl_exist_errors。
  默認情況下該參數(shù)值是off,我們可以列出具體的error code,也可以選擇all,mysql5.6及MySQL Cluster NDB 7.3以及后續(xù)版本增加了參數(shù)ddl_exist_errors,該參數(shù)包含一系列error code(1007,1008,1050,1051,1054,1060,1061,1068,1094,1146)
    一些error code代表的錯誤如下:
    1007:數(shù)據(jù)庫已存在,創(chuàng)建數(shù)據(jù)庫失敗
    1008:數(shù)據(jù)庫不存在,刪除數(shù)據(jù)庫失敗
    1050:數(shù)據(jù)表已存在,創(chuàng)建數(shù)據(jù)表失敗
    1051:數(shù)據(jù)表不存在,刪除數(shù)據(jù)表失敗
    1054:字段不存在,或程序文件跟數(shù)據(jù)庫有沖突
    1060:字段重復,導致無法插入
    1061:重復鍵名
    1068:定義了多個主鍵
    1094:位置線程ID
    1146:數(shù)據(jù)表缺失,請恢復數(shù)據(jù)庫
    1053:復制過程中主服務器宕機
    1062:主鍵沖突 Duplicate entry '%s' for key %d
slave_skip_errors=all 
    
    
#*** MyISAM 相關選項 ***#
# 指定用于索引的緩沖區(qū)大小,增加它可得到更好的索引處理性能。如果是以InnoDB引擎為主的DB,專用于MyISAM引擎的 key_buffer_size 可以設置較小,8MB 已足夠  如果是以MyISAM引擎為主,可設置較大,但不能超過4G. 在這里,強烈建議不使用MyISAM引擎,默認都是用InnoDB引擎.注意:該參數(shù)值設置的過大反而會是服務器整體效率降低!
key_buffer_size = 256M 

# 查詢排序時所能使用的緩沖區(qū)大小。排序緩沖被用來處理類似 ORDER BY 以及 GROUP BY 隊列所引起的排序.一個用來替代的基于磁盤的合并分類會被使用.查看 “Sort_merge_passes” 狀態(tài)變量. 在排序發(fā)生時由每個線程分配 注意:該參數(shù)對應的分配內(nèi)存是每連接獨占!如果有 100 個連接,那么實際分配的總共排序緩沖區(qū)大小為 100 × 6 =600MB,所以,對于內(nèi)存在 4GB 左右的服務器推薦設置為 6-8M。  
sort_buffer_size = 2M 

# 讀查詢操作所能使用的緩沖區(qū)大小。和 sort_buffer_size 一樣,該參數(shù)對應的分配內(nèi)存也是每連接獨享!用來做 MyISAM 表全表掃描的緩沖大小.當全表掃描需要時,在對應線程中分配. 
read_buffer_size = 2M 

# 聯(lián)合查詢操作所能使用的緩沖區(qū)大小,和 sort_buffer_size 一樣,該參數(shù)對應的分配內(nèi)存也是每連接獨享!此緩沖被使用來優(yōu)化全聯(lián)合(full JOINs 不帶索引的聯(lián)合).類似的聯(lián)合在極大多數(shù)情況下有非常糟糕的性能表現(xiàn), 但是將此值設大能夠減輕性能影響.通過 “Select_full_join”狀態(tài)變量查看全聯(lián)合的數(shù)量, 當全聯(lián)合發(fā)生時,在每個線程中分配。 
join_buffer_size = 8M 

# MyISAM 以索引掃描(Random Scan)方式掃描數(shù)據(jù)的 buffer大小  
read_rnd_buffer_size = 8M 

# MyISAM 使用特殊的類似樹的 cache 來使得突發(fā)插入(這些插入是,INSERT … SELECT, INSERT … VALUES (…), (…), …, 以及 LOAD DATAINFILE) 更快. 此變量限制每個進程中緩沖樹的字節(jié)數(shù).設置為 0 會關閉此優(yōu)化.為了最優(yōu)化不要將此值設置大于 “key_buffer_size”.當突發(fā)插入被檢測到時此緩沖將被分配MyISAM 用在塊插入優(yōu)化中的樹緩沖區(qū)的大小。注釋:這是一個 per thread 的限制 ( bulk 大量).此緩沖當 MySQL 需要在 REPAIR, OPTIMIZE, ALTER 以及 LOAD DATA INFILE到一個空表中引起重建索引時被分配.這在每個線程中被分配.所以在設置大值時需要小心. 
bulk_insert_buffer_size = 64M 

# MyISAM 設置恢復表之時使用的緩沖區(qū)的尺寸,當在REPAIR TABLE 或用 CREATE INDEX 創(chuàng)建索引或 ALTER TABLE 過程中排序 MyISAM 索引分配的緩沖區(qū) 
myisam_sort_buffer_size = 64M 

#mysql重建索引時允許使用的臨時文件最大大小 
myisam_max_sort_file_size = 10G

#如果該值大于 1,在 Repair by sorting 過程中并行創(chuàng)建MyISAM 表索引(每個索引在自己的線程內(nèi)).如果一個表擁有超過一個索引, MyISAM 可以通過并行排序使用超過一個線程去修復他們.這對于擁有多個 CPU 以及大量內(nèi)存情況的用戶,是一個很好的選擇. 
myisam_repair_threads = 1 

#允許的 GROUP_CONCAT()函數(shù)結果的最大長度
transaction_isolation = REPEATABLE-READ # 設定默認的事務隔離級別.可用的級別如下:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ,SERIALIZABLE
1.READ UNCOMMITTED-讀未提交 2.READ COMMITTE-讀已提交 3.REPEATABLE READ -可重復讀 4.SERIALIZABLE -串行 
myisam_recover = 64K
 
 
# *** INNODB 相關選項 ***#
# 如果你的 MySQL 服務包含 InnoDB 支持但是并不打算使用的話,使用此選項會節(jié)省內(nèi)存以及磁盤空間,并且加速某些部分
skip-innodb 


# InnoDB為獨立表空間模式,每個數(shù)據(jù)庫的每個表都會生成一個數(shù)據(jù)空間
獨立表空間優(yōu)點:
1.每個表都有自已獨立的表空間。
2.每個表的數(shù)據(jù)和索引都會存在自已的表空間中。
3.可以實現(xiàn)單表在不同的數(shù)據(jù)庫中移動。
4.空間可以回收(除drop table操作處,表空不能自已回收)
缺點:
1.單表增加過大,如超過100G
結論:
共享表空間在Insert操作上少有優(yōu)勢。其它都沒獨立表空間表現(xiàn)好。當啟用獨立表空間時,請合理調(diào)整:innodb_open_files
innodb_file_per_table = 1 

#啟用InnoDB的status file,便于管理員查看以及監(jiān)控等 
innodb_status_file = 1 

# 限制Innodb能打開的表的數(shù)據(jù),如果庫里的表特別多的情況,請增加這個。這個值默認是300 
innodb_open_files = 2048 

#設置InnoDB存儲引擎用來存放數(shù)據(jù)字典信息以及一些內(nèi)部數(shù)據(jù)結構的內(nèi)存空間大小,所以當我們一個MySQL Instance中的數(shù)據(jù)庫對象非常多的時候,是需要適當調(diào)整該參數(shù)的大小以確保所有數(shù)據(jù)都能存放在內(nèi)存中提高訪問效率的。 
innodb_additional_mem_pool_size = 100M 
 
#包括數(shù)據(jù)頁、索引頁、插入緩存、鎖信息、自適應哈希所以、數(shù)據(jù)字典信息.InnoDB 使用一個緩沖池來保存索引和原始數(shù)據(jù), 不像 MyISAM.這里你設置越大,你在存取表里面數(shù)據(jù)時所需要的磁盤 I/O 越少.在一個獨立使用的數(shù)據(jù)庫服務器上,你可以設置這個變量到服務器物理內(nèi)存大小的 80%,不要設置過大,否則,由于物理內(nèi)存的競爭可能導致操作系統(tǒng)的換頁顛簸.注意在 32 位系統(tǒng)上你每個進程可能被限制在 2-3.5G 用戶層面內(nèi)存限制,所以不要設置的太高. 
innodb_buffer_pool_size = 2G 

# innodb使用后臺線程處理數(shù)據(jù)頁上的讀寫 I/O(輸入輸出)請求,根據(jù)你的 CPU 核數(shù)來更改,默認是4
# 注:這兩個參數(shù)不支持動態(tài)改變,需要把該參數(shù)加入到my.cnf里,修改完后重啟MySQL服務,允許值的范圍從 1-64
innodb_write_io_threads = 4
innodb_read_io_threads = 4

#設置此選項如果你希望 InnoDB 表空間文件被保存在其他分區(qū).默認保存在 MySQL 的 datadir 中. 
innodb_data_home_dir =  /usr/local/mysql/var/ 

#InnoDB將數(shù)據(jù)保存在一個或者多個數(shù)據(jù)文件中成為表空間.如果你只有單個邏輯驅(qū)動保存你的數(shù)據(jù),一個單個的自增文件就足夠好了.其他情況下.每個設備一個文件一般都是個好的選擇.你也可以配置 InnoDB 來使用裸盤分區(qū) – 請參考手冊來獲取更多相關內(nèi)容 
innodb_data_file_path = ibdata1:500M;ibdata2:2210M:autoextend

#用來同步 IO 操作的 IO 線程的數(shù)量. 此值在 Unix 下被硬編碼為 4,但是在 Windows 磁盤 I/O 可能在一個大數(shù)值下表現(xiàn)的更好. 
innodb_file_io_threads = 4 

#在 InnoDb 核心內(nèi)的允許線程數(shù)量,InnoDB 試著在 InnoDB 內(nèi)保持操作系統(tǒng)線程的數(shù)量少于或等于這個參數(shù)給出的限制,最優(yōu)值依賴于應用程序,硬件以及操作系統(tǒng)的調(diào)度方式.過高的值可能導致線程的互斥顛簸.默認設置為 0,表示不限制并發(fā)數(shù),這里推薦設置為0,更好去發(fā)揮CPU多核處理能力,提高并發(fā)量 
innodb_thread_concurrency = 16

#如果設置為 1 ,InnoDB 會在每次提交后刷新(fsync)事務日志到磁盤上,這提供了完整的 ACID 行為.如果你愿意對事務安全折衷, 并且你正在運行一個小的食物, 你可以設置此值到 0 或者 2 來減少由事務日志引起的磁盤 I/O
代表日志只大約每秒寫入日志文件并且日志文件刷新到磁盤.
代表日志寫入日志文件在每次提交后,但是日志文件只有大約每秒才會刷新到磁盤上. 
innodb_flush_log_at_trx_commit = 1 

#用來緩沖日志數(shù)據(jù)的緩沖區(qū)的大小.當此值快滿時, InnoDB 將必須刷新數(shù)據(jù)到磁盤上.由于基本上每秒都會刷新一次,所以沒有必要將此值設置的太大(甚至對于長事務而言) 
innodb_log_buffer_size = 8M 

#事物日志大小.在日志組中每個日志文件的大小,你應該設置日志文件總合大小到你緩沖池大小的5%~100%,來避免在日志文件覆寫上不必要的緩沖池刷新行為.不論如何, 請注意一個大的日志文件大小會增加恢復進程所需要的時間. 
innodb_log_file_size = 500M 

#在日志組中的文件總數(shù).通常來說 2~3 是比較好的. 
innodb_log_files_in_group = 2 

# InnoDB 的日志文件所在位置. 默認是 MySQL 的 datadir.你可以將其指定到一個獨立的硬盤上或者一個 RAID1 卷上來提高其性能innodb_max_dirty_pages_pct = 90 #innodb 主線程刷新緩存池中的數(shù)據(jù),使臟數(shù)據(jù)比例小于 90%,這是一個軟限制,不被保證絕對執(zhí)行. 
innodb_log_group_home_dir =  /usr/local/mysql/var/

#InnoDB 事務在被回滾之前可以等待一個鎖定的超時秒數(shù)。InnoDB 在它自己的 鎖定表中自動檢測事務死鎖并且回滾事務。 InnoDB 用 LOCK TABLES 語句注意到鎖定設置。默認值是 50 秒 
innodb_lock_wait_timeout = 50 

# InnoDB 用來刷新日志的方法.表空間總是使用雙重寫入刷新方法.默認值是 “fdatasync”, 另一個是 “O_DSYNC”. 
innodb_flush_method = O_DSYNC 

# 如果你發(fā)現(xiàn) InnoDB 表空間損壞, 設置此值為一個非零值可能幫助你導出你的表.從1 開始并且增加此值知道你能夠成功的導出表.
innodb_force_recovery=1

# 加速 InnoDB 的關閉. 這會阻止 InnoDB 在關閉時做全清除以及插入緩沖合并.這可能極大增加關機時間, 但是取而代之的是 InnoDB 可能在下次啟動時做這些操作. 
innodb_fast_shutdown 
 
#*** mysqld options 相關選項 結束***#
 
# *** 其他 相關選項 ***#
#*** mysqldump options 相關選項 開始***#
[mysqldump]
#支持較大數(shù)據(jù)庫的轉儲,在導出非常巨大的表時需要此項。增加該變量的值十分安全,這是因為僅當需要時才會分配額外內(nèi)存。例如,僅當你發(fā)出長查詢或mysqld必須返回大的結果行時mysqld才會分配更多內(nèi)存。該變量之所以取較小默認值是一種預防措施,以捕獲客戶端和服務器之間的錯誤信息包,并確保不會因偶然使用大的信息包而導致內(nèi)存溢出。 如果你正是用大的BLOB值,而且未為mysqld授予為處理查詢而訪問足夠內(nèi)存的權限,也會遇到與大信息包有關的奇怪問題。如果懷疑出現(xiàn)了該情況,請嘗試在mysqld_safe腳本開始增加ulimit -d 256000,并重啟mysqld。
quick 

 
#*** mysql options 相關選項 開始***#
[mysql]
#允許通過 TAB 鍵提示
auto-rehash 

#數(shù)據(jù)庫字符集 
default-character-set = utf8 

connect-timeout = 3

#*** mysql options 相關選項 開始***#
[mysqld_safe]

#增加每個進程的可打開文件數(shù)量.確認你已經(jīng)將全系統(tǒng)限制設定的足夠高!打開大量表需要將此值設大
open-files-limit = 8192 

 my.cnf加載順序:

路徑    說明
/etc/my.cnf 全局配置
/etc/mysql/my.cnf 全局配置
SYSCONFDIR/my.cnf全局配置
$MYSQL_HOME/my.cnf 局部配置
defaults-extra-file局部配置
~/.my.cnf 局部配置

也就是說后加載的配置會將之前加載的配置覆蓋掉,最終生效的是后加載的配置。特殊的,如果在使用mysqld_safe啟動mysql時使用了參數(shù)--defaults-file指定自定義配置文件,將最終使用指定配置文件中的配置,此時要求該配置文件只允許所屬用戶具有寫權限,其他用戶不能有寫權限,否則啟動會報錯。

到此這篇關于mysql初始化命令mysqld --initialize參數(shù)說明小結的文章就介紹到這了,更多相關mysqld --initialize參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MySQL如何優(yōu)雅的刪除大表實例詳解

    MySQL如何優(yōu)雅的刪除大表實例詳解

    這篇文章主要給大家介紹了關于MySQL如何優(yōu)雅的刪除大表的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • 如何解決mysql insert亂碼的問題

    如何解決mysql insert亂碼的問題

    在本篇內(nèi)容里小編給大家整理的是一篇關于如何解決mysql insert亂碼的問題的相關文章,有興趣的朋友們可以學習參考下。
    2020-08-08
  • MySQL存儲引擎簡介及MyISAM和InnoDB的區(qū)別

    MySQL存儲引擎簡介及MyISAM和InnoDB的區(qū)別

    這篇文章主要介紹了MySQL存儲引擎簡介及MyISAM和InnoDB的區(qū)別,重點介紹了MyISAM 和 InnoDB的區(qū)別,需要的朋友可以參考下
    2014-05-05
  • mysqlsla慢查詢分析工具使用筆記

    mysqlsla慢查詢分析工具使用筆記

    mysqlsla是一款幫助語句分析、過濾、和排序的功能,能夠處理MySQL慢查詢?nèi)罩?、二進制日志等。整體來說, 功能非常強大. 能制作SQL查詢數(shù)據(jù)報表,分析包括執(zhí)行頻率, 數(shù)據(jù)量, 查詢消耗等
    2014-05-05
  • MySQL中int最大值深入講解

    MySQL中int最大值深入講解

    這篇文章主要給大家介紹了關于MySQL中int最大值的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-02-02
  • CentOS 7 安裝Percona Server+Mysql

    CentOS 7 安裝Percona Server+Mysql

    這篇文章主要介紹了CentOS 7 安裝Percona Server+Mysql的相關資料,需要的朋友可以參考下
    2018-11-11
  • MySQL8.0服務無法正常啟動的解決過程

    MySQL8.0服務無法正常啟動的解決過程

    這篇文章主要介紹了MySQL8.0服務無法正常啟動的解決過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 使用mysql查詢顯示行號的示例代碼

    使用mysql查詢顯示行號的示例代碼

    MySQL變量是一種用于存儲和操縱數(shù)據(jù)的數(shù)據(jù)類型,通過在SQL查詢中使用變量,我們可以創(chuàng)建一個MySQL查詢,用于獲取每行數(shù)據(jù)的行號,本文給大家介紹了使用mysql查詢顯示行號的示例代碼,需要的朋友可以參考下
    2024-01-01
  • 查看MySQL是否處于運行狀態(tài)的常見方法

    查看MySQL是否處于運行狀態(tài)的常見方法

    在管理 MySQL 數(shù)據(jù)庫的過程中,了解并掌握如何查看 MySQL 的運行狀態(tài)至關重要,這不僅可以幫助我們及時發(fā)現(xiàn)潛在的問題,還能確保數(shù)據(jù)庫系統(tǒng)的穩(wěn)定性和性能,本文將詳細介紹通過不同的方法來查看 MySQL 是否處于運行狀態(tài)的常見方法
    2025-02-02
  • MySQL查詢截取的深入分析

    MySQL查詢截取的深入分析

    這篇文章主要給大家介紹了關于MySQL查詢截取的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01

最新評論