MySQL是一種關(guān)系型數(shù)據(jù)庫(kù),而配置文件是控制MySQL行為的關(guān)鍵。MySQL 5.5是一個(gè)非常受歡迎的版本,因?yàn)樗阅芰己们遗渲孟鄬?duì)簡(jiǎn)單。本文將討論MySQL 5.5的默認(rèn)配置文件。
[client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M default-storage-engine = InnoDB innodb_file_per_table = 1 innodb_buffer_pool_size = 256M innodb_log_file_size = 64M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash
這是MySQL 5.5的默認(rèn)配置文件。下面是每個(gè)段的解釋?zhuān)?/p>
[client]
這個(gè)部分是用于客戶端連接到MySQL服務(wù)器時(shí)的設(shè)置。默認(rèn)情況下,MySQL客戶端會(huì)嘗試使用本地Unix域套接字來(lái)連接。如果無(wú)法使用Unix域套接字,那么MySQL將嘗試使用TCP/IP協(xié)議。端口設(shè)置為3306。
[mysqld]
這個(gè)部分是用于服務(wù)器啟動(dòng)時(shí)的設(shè)置。默認(rèn)情況下,MySQL將使用/tmp/mysql.sock文件作為Unix域套接字文件。skip-external-locking表示在鎖定表時(shí)使用內(nèi)部鎖定方法。其他設(shè)置包括鍵緩沖區(qū)大小、允許的最大數(shù)據(jù)包大小、表緩存數(shù)量等等。MySQL 5.5默認(rèn)存儲(chǔ)引擎為InnoDB,并且為每個(gè)表使用一個(gè)獨(dú)立的文件。InnoDB緩沖池的大小設(shè)置為256M,日志文件的大小設(shè)置為64M,并且在每個(gè)事務(wù)提交時(shí)立即將日志刷新到磁盤(pán)上。在等待鎖定時(shí),等待時(shí)間最長(zhǎng)為50秒。
[mysqldump]
這個(gè)部分是用于配置mysqldump工具的設(shè)置。mysqldump用于備份MySQL數(shù)據(jù)庫(kù)。通過(guò)設(shè)置max_allowed_packet來(lái)控制每個(gè)數(shù)據(jù)包的最大大小。
[mysql]
這個(gè)部分是用于MySQL客戶端的設(shè)置。no-auto-rehash選項(xiàng)表示不要自動(dòng)重新計(jì)算完成一個(gè)查詢時(shí)的哈希表。這只適用于非常大的情況,因?yàn)樽詣?dòng)重算哈希表可能會(huì)占用大量?jī)?nèi)存。
這是MySQL 5.5的默認(rèn)配置文件。從這個(gè)文件中可以看到MySQL在默認(rèn)情況下表現(xiàn)良好,并且可以通過(guò)更改參數(shù)來(lái)滿足應(yīng)用程序的需求。