mysql資料庫my.ini設定檔中文詳解

來源:互聯網
上載者:User

mysqld程式–目錄和檔案

引用

basedir = path 使用給定目錄作為根目錄(安裝目錄)。

character-sets-dir = path 給出存放著字元集的目錄。

datadir = path 從給定目錄讀取資料庫檔案。

pid-file = filename 為mysqld程式指定一個存放進程ID的檔案(僅適用於UNIX/Linux系統); Init-V指令碼需要使用這個檔案裡的進程ID結束mysqld進程。

socket = filename 為MySQL客戶程式與伺服器之間的本地通訊指定一個通訊端檔案(僅適用於UNIX/Linux系統; 預設設定一般是/var/lib/mysql/mysql.sock檔案)。在Windows環境下,如果MySQL客戶與伺服器是通過具名管道進行通訊 的,–sock選項給出的將是該具名管道的名字(預設設定是MySQL)。

lower_case_table_name = 1/0 新目錄和資料表的名字是否只允許使用小寫字母; 這個選項在Windows環境下的預設設定是1(只允許使用小寫字母)。

mysqld程式–語言設定

引用

character-sets-server = name 新資料庫或資料表的預設字元集。為了與MySQL的早期版本保持相容,這個字元集也可以用–default-character-set選項給出; 但這個選項已經顯得有點過時了。

collation-server = name 新資料庫或資料表的預設排序方式。

lanuage = name 用指定的語言顯示出錯資訊。

mysqld程式–通訊、網路、資訊安全

引用

enable-named-pipes 允許Windows 2000/XP環境下的客戶和伺服器使用具名管道(named pipe)進行通訊。這個具名管道的預設名字是MySQL,但可以用–socket選項來改變。

local-infile [=0] 允許/禁止使用LOAD DATA LOCAL語句來處理本地檔案。

myisam-recover [=opt1, opt2, ...] 在啟動時自動修複所有受損的MyISAM資料表。這個選項的可取值有4種:DEFAULT、BACKUP、QUICK和FORCE; 它們與myisamchk程式的同名選項作用相同。

old-passwords 使用MySQL 3.23和4.0版本中的老演算法來加密mysql資料庫裡的密碼(預設使用MySQL 4.1版本開始引入的新密碼編譯演算法)。

port = n 為MySQL程式指定一個TCP/IP通訊連接埠(通常是3306連接埠)。

safe-user-create 只有在mysql.user資料庫表上擁有INSERT許可權的使用者才能使用GRANT命令; 這是一種雙保險機制(此使用者還必須具備GRANT許可權才能執行GRANT命令)。

shared-memory 允許使用記憶體(shared memory)進行通訊(僅適用於Windows)。

shared-memory-base-name = name 給共用記憶體塊起一個名字(預設的名字是MySQL)。

skip-grant-tables 不使用mysql資料庫裡的資訊來進行存取控制(警告:這將允許使用者任何使用者去修改任何資料庫)。

skip-host-cache 不使用快取區來存放主機名稱和IP地址的對應關係。

skip-name-resovle 不把IP位址解析為主機名稱; 與存取控制(mysql.user資料表)有關的檢查全部通過IP地址行進。

skip-networking 只允許通過一個通訊端檔案(Unix/Linux系統)或通過具名管道(Windows系統)進行本地串連,不允許ICP/IP串連; 這提高了安全性,但阻斷了來自網路的外部串連和所有的Java客戶程式(Java客戶即使在本地串連裡也使用TCP/IP)。

user = name mysqld程式在啟動後將在給定UNIX/Linux賬戶下執行; mysqld必須從root賬戶啟動才能在啟動後切換到另一個賬戶下執行; mysqld_safe指令碼將預設使用–user=mysql選項來啟動mysqld程式。

mysqld程式–記憶體管理、最佳化、查詢快取區

引用

bulk_insert_buffer_size = n 為一次插入多條新記錄的INSERT命令分配的緩衝區長度(預設設定是8M)。

key_buffer_size = n 用來存放索引區塊的RMA值(預設設定是8M)。

join_buffer_size = n 在參加JOIN操作的資料列沒有索引時為JOIN操作分配的緩衝區長度(預設設定是128K)。

max_heap_table_size = n HEAP資料表的最大長度(預設設定是16M); 超過這個長度的HEAP資料表將被存入一個臨時檔案而不是駐留在記憶體裡。

max_connections = n MySQL伺服器同時處理的資料庫連接的最大數量(預設設定是100)。

query_cache_limit = n 允許臨時存放在查詢快取區裡的查詢結果的最大長度(預設設定是1M)。

query_cache_size = n 查詢快取區的最大長度(預設設定是0,不開闢查詢快取區)。

query_cache_type = 0/1/2 查詢快取區的工作模式:0, 禁用查詢快取區; 1,啟用查詢快取區(預設設定); 2,”按需分配”模式,只響應SELECT SQL_CACHE命令。

read_buffer_size = n 為從資料表順序讀取資料的讀操作保留的緩衝區的長度(預設設定是128KB); 這個選項的設定值在必要時可以用SQL命令SET SESSION read_buffer_size = n命令加以改變。

read_rnd_buffer_size = n 類似於read_buffer_size選項,但針對的是按某種特定順序(比如使用了ORDER BY子句的查詢)輸出的查詢結果(預設設定是256K)。

sore_buffer = n 為排序操作分配的緩衝區的長度(預設設定是2M); 如果這個緩衝區太小,則必須建立一個臨時檔案來進行排序。

table_cache = n 同時開啟的資料表的數量(預設設定是64)。

tmp_table_size = n 臨時HEAP資料表的最大長度(預設設定是32M); 超過這個長度的臨時資料表將被轉換為MyISAM資料表並存入一個臨時檔案。

mysqld程式–日誌

引用

log [= file] 把所有的串連以及所有的SQL命令記入日誌(通用查詢日誌); 如果沒有給出file參數,MySQL將在資料庫目錄裡建立一個hostname.log檔案作為這種記錄檔(hostname是伺服器的主機名稱)。

log-slow-queries [= file] 把執行用時超過long_query_time變數值的查詢命令記入日誌(慢查詢日誌); 如果沒有給出file參數,MySQL將在資料庫目錄裡建立一個hostname-slow.log檔案作為這種記錄檔(hostname是伺服器主機 名)。

long_query_time = n 慢查詢的執行用時上限(預設設定是10s)。

long_queries_not_using_indexs 把慢查詢以及執行時沒有使用索引的查詢命令全都記入日誌(其餘同–log-slow-queries選項)。

log-bin [= filename] 把對資料進行修改的所有SQL命令(也就是INSERT、UPDATE和DELETE命令)以二進位格式記入日誌(二進位變更日誌,binary update log)。這種日誌的檔案名稱是filename.n或預設的hostname.n,其中n是一個6位元字的整數(記錄檔按順序編號)。

log-bin-index = filename 二進位日誌功能的索引檔案名稱。在預設情況下,這個索引檔案與二進位記錄檔的名字相同,但尾碼名是.index而不是.nnnnnn。

max_binlog_size = n 二進位記錄檔的最大長度(預設設定是1GB)。在前一個二進位記錄檔裡的資訊量超過這個最大長度之前,MySQL伺服器會自動提供一個新的二進位記錄檔接續上。

binlog-do-db = dbname 只把給定資料庫裡的變化情況記入二進位記錄檔,其他資料庫裡的變化情況不記載。如果需要記載多個資料庫裡的變化情況,就必須在設定檔使用多個本選項來設定,每個資料庫一行。

binlog-ignore-db = dbname 不把給定資料庫裡的變化情況記入二進位記錄檔。

sync_binlog = n 每經過n次日誌寫操作就把記錄檔寫入硬碟一次(對日誌資訊進行一次同步)。n=1是最安全的做法,但效率最低。預設設定是n=0,意思是由作業系統來負責二進位記錄檔的同步工作。

log-update [= file] 記載出錯情況的記錄檔名(出錯日誌)。這種日誌功能無法禁用。如果沒有給出file參數,MySQL會使用hostname.err作為種記錄檔的名字。

mysqld程式–鏡像(主控鏡像伺服器)

引用

server-id = n 給伺服器分配一個獨一無二的ID編號; n的取值範圍是1~2的32次方啟用二進位日誌功能。

log-bin = name 啟用二進位日誌功能。這種日誌的檔案名稱是filename.n或預設的hostname.n,其中的n是一個6位元字的整數(記錄檔順序編號)。

binlog-do/ignore-db = dbname 只把給定資料庫裡的變化情況記入二進位記錄檔/不把給定的資料庫裡的變化記入二進位記錄檔。

mysqld程式–鏡像(從屬鏡像伺服器)

引用

server-id = n 給伺服器分配一個唯一的ID編號

log-slave-updates 啟用從屬伺服器上的日誌功能,使這台電腦可以用來構成一個鏡像鏈(A->B->C)。

master-host = hostname 主控伺服器的主機名稱或IP地址。如果從屬伺服器上存在mater.info檔案(鏡像關係定義檔案),它將忽略此選項。

master-user = replicusername 從屬伺服器用來串連主控伺服器的使用者名稱。如果從屬伺服器上存在mater.info檔案,它將忽略此選項。

master-password = passwd 從屬伺服器用來串連主控伺服器的密碼。如果從屬伺服器上存在mater.info檔案,它將忽略此選項。

master-port = n 從屬伺服器用來串連主控伺服器的TCP/IP連接埠(預設設定是3306連接埠)。

master-connect-retry = n 如果與主控伺服器的串連沒有成功,則等待n秒(s)後再進行管理方式(預設設定是60s)。如果從屬伺服器存在mater.info檔案,它將忽略此選項。

master-ssl-xxx = xxx 對主、從伺服器之間的SSL通訊進行配置。

read-only = 0/1 0: 允許從屬伺服器獨立地執行SQL命令(預設設定); 1: 從屬伺服器只能執行來自主控伺服器的SQL命令。

read-log-purge = 0/1 1: 把處理完的SQL命令立刻從中繼記錄檔裡刪除(預設設定); 0: 不把處理完的SQL命令立刻從中繼記錄檔裡刪除。

replicate-do-table = dbname.tablename 與–replicate-do-table選項的含義和用法相同,但資料庫和資料庫表名字裡允許出現萬用字元”%”(例如: test%.%–對名字以”test”開頭的所有資料庫裡的所以資料庫表進行鏡像處理)。

replicate-do-db = name 只對這個資料庫進行鏡像處理。

replicate-ignore-table = dbname.tablename 不對這個資料表進行鏡像處理。

replicate-wild-ignore-table = dbn.tablen 不對這些資料表進行鏡像處理。

replicate-ignore-db = dbname 不對這個資料庫進行鏡像處理。

replicate-rewrite-db = db1name > db2name 把主控資料庫上的db1name資料庫鏡像處理為從屬伺服器上的db2name資料庫。

report-host = hostname 從屬伺服器的主機名稱; 這項資訊只與SHOW SLAVE HOSTS命令有關–主控伺服器可以用這條命令產生一份從屬伺服器的名單。

slave-compressed-protocol = 1 主、從伺服器使用壓縮格式進行通訊–如果它們都支援這麼做的話。

slave-skip-errors = n1, n2, …或all 即使發生出錯代碼為n1、n2等的錯誤,鏡像處理工作也繼續進行(即不管發生什麼錯誤,鏡像處理工作也繼續進行)。如果配置得當,從屬伺服器不應該在執行SQL命令時發生錯誤(在主控伺服器上執行出錯的SQL命令不會被發送到從屬伺服器上做鏡像處理); 如果不使用slave-skip-errors選項,從屬伺服器上的鏡像工作就可能因為發生錯誤而中斷,中斷後需要有人工參與才能繼續進行。

mysqld–InnoDB–基本設定、資料表空間檔案

引用

skip-innodb 不載入InnoDB資料表驅動程式–如果用不著InnoDB資料表,可以用這個選項節省一些記憶體。

innodb-file-per-table 為每一個新資料表建立一個資料表空間檔案而不是把資料表都集中儲存在中央資料表空間裡(後者是預設設定)。該選項始見於MySQL 4.1。

innodb-open-file = n InnoDB資料表驅動程式最多可以同時開啟的檔案數(預設設定是300)。如果使用了

innodb-file-per-table選項並且需要同時開啟很多資料表的話,這個數字很可能需要加大。

innodb_data_home_dir = p InnoDB主目錄,所有與InnoDB資料表有關的目錄或檔案路徑都相對於這個路徑。在預設的情況下,這個主目錄就是MySQL的資料目錄。

innodb_data_file_path = ts 用來容納InnoDB為資料表的資料表空間: 可能涉及一個以上的檔案; 每一個資料表空間檔案的最大長度都必須以位元組(B)、MB(MB)或千MB(GB)為單位給出; 資料表空間檔案的名字必須以分號隔開; 最後一個資料表空間檔案還可以帶一個autoextend屬性和一個最大長度(max:n)。例如,ibdata1:1G; ibdata2:1G:autoextend:max:2G的意思是: 資料表空間檔案ibdata1的最大長度是1GB,ibdata2的最大長度也是1G,但允許它擴充到2GB。除檔案名稱外,還可以用硬碟分區的設定名來定義表 空間,此時必須給資料表空間的最大初始長度值加上newraw關鍵字做尾碼,給資料表空間的最大擴充長度值加上raw關鍵字做尾碼(例如/dev/hdb1: 20Gnewraw或/dev/hdb1:20Graw); MySQL 4.0及更高版本的預設設定是ibdata1:10M:autoextend。

innodb_autoextend_increment = n 帶有autoextend屬性的資料表空間檔案每次加大多少MB(預設設定是8MB)。這個屬性不涉及具體的資料表檔案,那些檔案的增大速度相對是比較小的。

innodb_lock_wait_timeout = n 如果某個事務在等待n秒(s)後還沒有獲得所需要的資源,就使用ROLLBACK命令放棄這個事務。這項設定對於發現和處理未能被InnoDB資料表驅動 程式識別出來的死結條件有著重要的意義。這個選項的預設設定是50s。

innodb_fast_shutdown 0/1 是否以最快的速度關閉InnoDB,預設設定是1,意思是不把緩衝在INSERT緩衝區的資料寫入資料表,那些資料將在MySQL伺服器下次啟動時再寫入(這麼做沒有什麼風險,因為INSERT緩衝區是資料表空間的一個組成部分,資料不會丟失)。把這個選項設定為0反面危險,因為在電腦關閉時,InnoDB 驅動程式很可能沒有足夠的時間完成它的資料同步工作,作業系統也許會在它完成資料同步工作之前強行結束InnoDB,而這會導致資料不完整。

mysqld程式–InnoDB–日誌

引用

innodb_log_group_home_dir = p 用來存放InnoDB記錄檔的目錄路徑(如ib_logfile0、ib_logfile1等)。在預設的情況下,InnoDB驅動程式將使用MySQL資料目錄作為自己儲存記錄檔的位置。

innodb_log_files_in_group = n 使用多少個記錄檔(預設設定是2)。InnoDB資料表驅動程式將以輪轉方式依次填寫這些檔案; 當所有的記錄檔都寫滿以後,之後的日誌資訊將寫入第一個記錄檔的最大長度(預設設定是5MB)。這個長度必須以MB(MB)或GB(千MB)為單 位進行設定。

innodb_flush_log_at_trx_commit = 0/1/2 這個選項決定著什麼時候把日誌資訊寫入記錄檔以及什麼時候把這些檔案物理地寫(術語稱為”同步”)到硬碟上。設定值0的意思是每隔一秒寫一次日誌並進行 同步,這可以減少硬碟寫操作次數,但可能造成資料丟失; 設定值1(設定設定)的意思是在每執行完一條COMMIT命令就寫一次日誌並進行同步,這可以防止資料丟失,但硬碟寫操作可能會很頻繁; 設定值2是一般折衷的辦法,即每執行完一條COMMIT命令寫一次日誌,每隔一秒進行一次同步。

innodb_flush_method = x InnoDB記錄檔的同步辦法(僅適用於UNIX/Linux系統)。這個選項的可取值有兩種: fdatasync,用fsync()函數進行同步; O_DSYNC,用O_SYNC()函數進行同步。

innodb_log_archive = 1 啟用InnoDB驅動程式的archive(檔案)日誌功能,把日誌資訊寫入ib_arch_log_n檔案。啟用這種日誌功能在InnoDB與MySQL一起使用時沒有多大意義(啟用MySQL伺服器的二進位日誌功能就足夠用了)。

mysqld程式–InnoDB–緩衝區的設定和最佳化

引用

innodb_log_buffer_pool_size = n 為InnoDB資料表及其索引而保留的RAM記憶體量(預設設定是8MB)。這個參數對速度有著相當大的影響,如果電腦上只運行有MySQL/InnoDB資料庫伺服器,就應該把全部記憶體的80%用於這個用途。

innodb_log_buffer_size = n 交易記錄檔寫操作緩衝區的最大長度(預設設定是1MB)。

innodb_additional_men_pool_size = n 為用於內部管理的各種資料結構分配的緩衝區最大長度(預設設定是1MB)。

innodb_file_io_threads = n I/O操作(硬碟寫操作)的最大線程個數(預設設定是4)。

innodb_thread_concurrency = n InnoDB驅動程式能夠同時使用的最大線程個數(預設設定是8)。

mysqld程式–其它選項

引用

bind-address = ipaddr MySQL伺服器的IP地址。如果MySQL伺服器所在的電腦有多個IP地址,這個選項將非常重要。

default-storage-engine = type 新資料表的預設資料表類型(預設設定是MyISAM)。這項設定還可以通過–default-table-type選項來設定。

default-timezone = name 為MySQL伺服器設定一個地理時區(如果它與本機電腦的地理時區不一樣)。

ft_min_word_len = n 全文索引的最小單詞長度工。這個選項的預設設定是4,意思是在建立全文索引時不考慮那些由3個或更少的字元構建單詞。

Max-allowed-packet = n 客戶與伺服器之間交換的資料包的最大長度,這個數字至少應該大於客戶程式將要處理的最大BLOB塊的長度。這個選項的預設設定是1MB。

Sql-mode = model1, mode2, … MySQL將運行在哪一種SQL模式下。這個選項的作用是讓MySQL與其他的資料庫系統保持最大程度的相容。這個選項的可取值包括ansi、db2、oracle、no_zero_date、pipes_as_concat。

注意:如果在設定檔裡給出的某個選項是mysqld無法識別的,MySQL伺服器將不啟動

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.