共計 12263 個字符,預計需要花費 31 分鐘才能閱讀完成。
這篇文章給大家分享的是有關如何查看 mysql 默認讀取 my.cnf 的目錄的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。
查看 mysql 默認讀取 my.cnf 的目錄
如果沒有設置使用指定目錄的 my.cnf,mysql 啟動時會讀取安裝目錄根目錄及默認目錄下的 my.cnf 文件,查看 mysql 啟動時讀取配置文件的默認目錄,命令如下:
mysql –help|grep my.cnf
命令輸出中的就是 mysql 默認會搜尋 my.cnf 的目錄,順序排前的優先。
[client]
#########################################################################
# #
# MySQL 客戶端配置 #
# #
#########################################################################
port = 3306
# MySQL 客戶端默認端口號
socket = /data/mysql/my3306/mysql.sock
# 用于本地連接的 Unix 套接字文件存放路徑
default-character-set = utf8mb4
# MySQL 客戶端默認字符集
[mysql]
#########################################################################
# #
# MySQL 命令行配置 #
# #
#########################################################################
auto-rehash
# 開啟 tab 補齊功能
socket = /data/mysql/my3306/mysql.sock
# 用于本地連接的 Unix 套接字文件存放路徑
default-character-set = utf8mb4
# MySQL 客戶端默認字符集
max_allowed_packet = 256M
# 指定在網絡傳輸中一次消息傳輸量的最大值。系統默認值 為 1MB,最大值是 1GB,必須設置 1024 的倍數。
[mysqld]
#########################################################################
# #
# MySQL 服務端配置 #
# #
#########################################################################
########################################
# #
# General #
# #
########################################
port = 3306
# MySQL 服務端默認監聽的 TCP/IP 端口
socket = /data/mysql/my3306/mysql.sock
# 用于本地連接的 Unix 套接字文件存放路徑
pid_file = /data/mysql/my3306/mysql.pid
# 進程 ID 文件存放路徑
basedir = /app/mysql
# MySQL 軟件安裝路徑
datadir = /data/mysql/my3306
# MySQL 數據文件存放路徑
tmpdir = /data/mysql/my3306
# MySQL 臨時文件存放路徑
character_set_server = utf8mb4
# MySQL 服務端字符集
collation_server = utf8mb4_general_ci
# MySQL 服務端校對規則
default-storage-engine = InnoDB
# 設置默認存儲引擎為 InnoDB
autocommit = OFF
# 默認為 ON,設置為 OFF,關閉事務自動提交
transaction_isolation = READ-COMMITTED
# MySQL 支持 4 種事務隔離級別,他們分別是:
# READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.
# 如沒有指定,MySQL 默認采用的是 REPEATABLE-READ,ORACLE 默認的是 READ-COMMITTED
event_scheduler = ON
# 開啟事件調度器 event_scheduler
#explicit_defaults_for_timestamp = ON
# 控制 TIMESTAMP 數據類型的特性,默認 OFF,設置為 ON,update 時 timestamp 列關閉自動更新。(將來會被廢棄)
lower_case_table_names = 1
# 庫名、表名是否區分大小寫。默認為 0,設置 1,不區分大小寫,創建的表、數據庫都以小寫形式存放磁盤。
########################################
# #
# Network Connection #
# #
########################################
max_connections = 1000
# MySQL 允許的最大并發連接數,默認值 151,如果經常出現 Too Many Connections 的錯誤提示,則需要增大此值。
max_user_connections = 1000
# 每個數據庫用戶的最大連接,(同一個賬號能夠同時連接到 mysql 服務的最大連接數),默認為 0,表示不限制。
back_log = 500
# MySQL 監聽 TCP 端口時設置的積壓請求棧大小,默認 50+(max_connections/5),最大不超過 900
max_connect_errors = 10000
# 每個主機的連接請求異常中斷的最大次數。對于同一主機,如果有超出該參數值個數的中斷錯誤連接,則該主機將被禁止連接。如需對該主機進行解禁,執行:FLUSH HOST。
interactive_timeout = 28800
# 服務器關閉交互式連接前等待活動的秒數。交互式客戶端定義為在 mysql_real_connect()中使用 CLIENT_INTERACTIVE 選項的客戶端。默認值:28800 秒(8 小時)
wait_timeout = 28800
# 服務器關閉非交互連接之前等待活動的秒數。默認值:28800 秒(8 小時)
# 指定一個請求的最大連接時間,當 MySQL 連接閑置超過一定時間后將會被強行關閉。對于 4GB 左右內存的服務器來說,可以將其設置為 5~10。
# 如果經常出現 Too Many Connections 的錯誤提示,或者 show processlist 命令發現有大量 sleep 進程,則需要同時減小 interactive_timeout 和 wait_timeout 值。
connect_timeout = 28800
# 在獲取連接時,等待握手的超時秒數,只在登錄時生效。主要是為了防止網絡不佳時應用重連導致連接數漲太快,一般默認即可。
open_files_limit = 5000
# mysqld 能打開文件的最大個數,默認最小 1024,如果出現 too mant open files 之類的就需要增大該值。
max_allowed_packet = 256M
# 指定在網絡傳輸中一次消息傳輸量的最大值。系統默認值 為 1MB,最大值是 1GB,必須設置 1024 的倍數。
########################################
# #
# Thread Buffer #
# #
########################################
sort_buffer_size = 2M
# 排序緩沖區大小,connection 級參數,默認大小為 2MB。如果想要增加 ORDER BY 的速度,首先看是否可以讓 MySQL 使用索引,其次可以嘗試增大該值。
read_buffer_size = 160M
# 順序讀緩沖區大小,connection 級參數,該參數對應的分配內存是每連接獨享。對表進行順序掃描的請求將分配一個讀入緩沖區。
read_rnd_buffer_size = 160M
# 隨機讀緩沖區大小,connection 級參數,該參數對應的分配內存是每連接獨享。默認值 256KB,最大值 4GB。當按任意順序讀取行時,將分配一個隨機讀緩存區。
join_buffer_size = 320M
# 聯合查詢緩沖區大小,connection 級參數,該參數對應的分配內存是每連接獨享。
bulk_insert_buffer_size = 64M
# 批量插入數據緩存大小,可以有效提高插入效率,默認為 8M
thread_cache_size = 8
# 服務器線程緩沖池中存放的最大連接線程數。默認值是 8,斷開連接時如果緩存中還有空間,客戶端的線程將被放到緩存中,當線程重新被請求,將先從緩存中讀取。
# 根據物理內存設置規則如下:1G — 8,2G — 16,3G — 32,大于 3G — 64
thread_stack = 256K
# 每個連接被創建時,mysql 分配給它的內存。默認 192KB,已滿足大部分場景,除非必要否則不要動它,可設置范圍 128KB~4GB。
query_cache_type = 0
# 關閉查詢緩存
query_cache_size = 0
# 查詢緩存大小,在高并發,寫入量大的系統,建議把該功能禁掉。
query_cache_limit = 4M
# 指定單個查詢能夠使用的緩沖區大小,缺省為 1M
tmp_table_size = 1024M
# MySQL 的 heap(堆積)表緩沖大小,也即內存臨時表,默認大小是 32M。如果超過該值,則會將臨時表寫入磁盤。在頻繁做很多高級 GROUP BY 查詢的 DW 環境,增大該值。
# 實際起限制作用的是 tmp_table_size 和 max_heap_table_size 的最小值。
max_heap_table_size = 1024M
# 用戶可以創建的內存表 (memory table) 的大小,這個值用來計算內存表的最大行數值。
table_definition_cache = 400
# 表定義緩存區,緩存 frm 文件。表定義 (global) 是全局的,可以被所有連接有效的共享。
table_open_cache = 1000
# 所有 SQL 線程可以打開表緩存的數量,緩存 ibd/MYI/MYD 文件。打開的表 (session 級別) 是每個線程,每個表使用。
table_open_cache_instances = 4
# 對 table cache 能拆成的分區數,用于減少鎖競爭,最大值 64.
########################################
# #
# Safety #
# #
########################################
#sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,ONLY_FULL_GROUP_BY
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER
# MySQL 支持的 SQL 語法模式,與其他異構數據庫之間進行數據遷移時,SQL Mode 組合模式會有幫助。
local_infile = OFF
# 禁用 LOAD DATA LOCAL 命令
plugin-load = validate_password.so
# 加密認證插件,強制 mysql 設置復雜密碼
skip-external-locking
#skip-locking
# 避免 MySQL 的外部鎖定,減少出錯幾率,增強穩定性。
skip-name-resolve
# 禁止 MySQL 對外部連接進行 DNS 解析,消除 MySQL 進行 DNS 解析。如果開啟該選項,所有遠程主機連接授權都要使用 IP 地址方式,否則 MySQL 將無法正常處理連接請求!
#skip-networking
# 不允許 CP/IP 連接,只能通過命名管道(Named Pipes)、共享內存(Shared Memory)或 Unix 套接字(Socket)文件連接。
# 如果 Web 服務器以遠程連接方式訪問 MySQL 數據庫服務器,則不要開啟該選項,否則無法正常連接!
# 適合應用和數據庫共用一臺服務器的情況,其他客戶端無法通過網絡遠程訪問數據庫
########################################
# #
# Logs #
# #
########################################
################### General Log ######################
general_log = OFF
# 關閉通用查詢日志
general_log_file = /data/mysql/my3306/general.log
# 通用查詢日志存放路徑
################### Slow Log ######################
slow_query_log = ON
# 開啟慢查詢日志
slow_query_log_file = /data/mysql/my3306/slow.log
# 慢查詢日志存放路徑
long_query_time = 10
# 超過 10 秒的查詢,記錄到慢查詢日志,默認值 10
log_queries_not_using_indexes = ON
# 沒有使用索引的查詢,記錄到慢查詢日志,可能引起慢查詢日志快速增長
log_slow_admin_statements = ON
# 執行緩慢的管理語句,記錄到慢查詢日志
# 例如 ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE, and REPAIR TABLE.
################### Error Log ####################
log_error = /data/mysql/my3306/error.log
# 錯誤日志存放路徑
log_error_verbosity = 2
# 全局動態變量,默認 3,范圍:1~3
# 表示錯誤日志記錄的信息,1:只記錄 error 信息;2:記錄 error 和 warnings 信息;3:記錄 error、warnings 和普通的 notes 信息
########################################
# #
# Replication #
# #
########################################
################### Bin Log ######################
server_id = 6
# 數據庫服務器 ID
log_bin = /data/mysql/my3306/binlog
# 二進制日志存放路徑
log_bin_index = /data/mysql/my3306/binlog.index
# 同 binlog,定義 binlog 的位置和名稱
binlog_format = row
# binlog 格式,復制有 3 種模式 STATEMENT,ROW,MIXED
expire_logs_days = 10
# 只保留最近 10 天的 binlog 日志
max_binlog_size = 50M
# 每個 binlog 日志文件的最大容量
binlog_cache_size = 2M
# 每個 session 分配的 binlog 緩存大小
# 事務提交前產生的日志,記錄到 Cache 中;事務提交后,則把日志持久化到磁盤
log_slave_updates = ON
# 開啟 log_slave_updates,從庫的更新操作記錄進 binlog 日志
sync_binlog = 1
# sync_binlog=0(默認),事務提交后 MySQL 不刷新 binlog_cache 到磁盤,而讓 Filesystem 自行決定,或者 cache 滿了才同步。
# sync_binlog=n,每進行 n 次事務提交之后,MySQL 將 binlog_cache 中的數據強制寫入磁盤。
binlog_rows_query_log_events = ON
# 將 row 模式下的 sql 語句,記錄到 binlog 日志,默認是 0(off)
################### Relay Log ######################
relay_log = /data/mysql/my3306/relaylog
# 中繼日志存放路徑
relay_log_index = /data/mysql/my3306/relaylog.index
# 同 relay_log,定義 relay_log 的位置和名稱
#binlog_checksum = CRC32
# Session-Thread 把 Event 寫到 Binlog 時,生成 checksum。默認為(NONE),兼容舊版本 mysql。
master_verify_checksum = ON
# Dump-Thread 讀 Binlog 中的 Event 時,驗證 checksum
slave_sql_verify_checksum = ON
# 從庫的 I /O-Thread 把 Event 寫入 Relaylog 時,生成 checksum;從庫的 SQL-Thread 從 Relaylog 讀 Event 時,驗證 checksum
master_info_repository = TABLE
relay_log_info_repository = TABLE
# 將 master.info 和 relay.info 保存在表中,默認是 Myisam 引擎,官方建議改為 Innodb 引擎,防止表損壞后自行修復。
relay_log_purge = ON
relay_log_recovery = ON
# 啟用 relaylog 的自動修復功能,避免由于網絡之類的外因造成日志損壞,主從停止。
skip_slave_start = OFF
# 重啟數據庫,復制進程默認不啟動
slave_net_timeout = 5
# 當 master 和 slave 之間的網絡中斷,slave 的 I /O-Thread 等待 5 秒,重連 master
sync_master_info = 10000
# slave 更新 mysql.slave_master_info 表的時間間隔
sync_relay_log = 10000
sync_relay_log_info = 10000
# slave 更新 mysql.slave_relay_log_info 表的時間間隔
gtid_mode = ON
enforce_gtid_consistency = ON
# GTID 即全局事務 ID(global transaction identifier),GTID 由 UUID+TID 組成的。
# UUID 是一個 MySQL 實例的唯一標識,TID 代表了該實例上已經提交的事務數量,并且隨著事務提交單調遞增。
# GTID 能夠保證每個 MySQL 實例事務的執行(不會重復執行同一個事務,并且會補全沒有執行的事務)。下面是一個 GTID 的具體形式:
# 4e659069-3cd8-11e5-9a49-001c4270714e:1-77
auto_increment_offset = 1
# 雙主復制中,2 臺服務器的自增長字段初值分別配置為 1 和 2,取值范圍是 1 .. 65535
auto_increment_increment = 2
# 雙主復制中,2 臺服務器的自增長字段的每次遞增值都配置為 2,其默認值是 1,取值范圍是 1 .. 65535
########################################
# #
# InnoDB #
# #
########################################
innodb_data_home_dir = /data/mysql/my3306
# innodb 表的數據文件目錄
innodb_file_per_table = ON
# 使用獨立表空間管理
innodb_data_file_path = ibdata1:1G:autoextend
# InnoDB 共享表空間磁盤文件,存放數據字典、和在線重做日志
innodb_log_group_home_dir = /data/mysql/my3306
# 在事務被提交并寫入到表空間磁盤文件上之前,事務數據存儲在 InnoDB 的 redo 日志文件里。這些日志位于 innodb_log_group_home_dir 變量定義的目錄中
innodb_buffer_pool_size = 2G
# InnoDB 用于緩存數據、索引、鎖、插入緩沖、數據字典的緩沖池。該值越大,緩存命中率越高,但是過大會導致頁交換。
innodb_buffer_pool_instances = 8
# 開啟 8 個內存緩沖池,把需要緩沖的數據 hash 到不同的緩沖池中,這樣可以并行的內存讀寫,降低并發導致的內部緩存訪問沖突。
# InnoDB 緩存系統會把參數 innodb_buffer_pool_size 指定大小的緩存,平分為 innodb_buffer_pool_instances 個 buffer_pool
#innodb_additional_mem_pool_size = 16M
# InnoDB 存儲數據字典、內部數據結構的緩沖池大小,類似于 Oracle 的 library cache
innodb_log_file_size = 256M
# InnoDB redo log 大小,對應于 ib_logfile0 文件。
# ib_logfile* 是 Innodb 多版本緩沖的一個保證,該日志記錄 redo、undo 信息,即 commit 之前的數據,用于 rollback 操作。
# 官方文檔的建議設置是 innodb_log_file_size = innodb_buffer_pool_size/innodb_log_files_in_group
innodb_log_buffer_size = 64M
# redo 日志所用的內存緩沖區大小
innodb_log_files_in_group = 4
# redo 日志文件數,默認值為 2,日志是以順序的方式寫入。
innodb_max_dirty_pages_pct = 90
# 緩存池中臟頁的最大比例,默認值是 75%,如果臟頁的數量達到或超過該值,InnoDB 的后臺線程將開始緩存刷新。
#“緩存刷新”是指 InnoDB 在找不到干凈的可用緩存頁或檢查點被觸發等情況下,InnoDB 的后臺線程就開始把“臟的緩存頁”回寫到磁盤文件中。
innodb_flush_log_at_trx_commit = 1
# 設置為 0,每秒 write cache flush disk
# 設置為 1,每次 commit 都 write cache flush disk
# 設置為 2,每次 commit 都 write cache,然后根據 innodb_flush_log_at_timeout(默認為 1s)時間 flush disk
innodb_lock_wait_timeout = 10
# InnoDB 有其內置的死鎖檢測機制,能導致未完成的事務回滾。但是,如果結合 InnoDB 使用 MyISAM 的 lock tables 語句或第三方事務引擎, 則 InnoDB 無法識別死鎖。
# 為消除這種可能性,可以將 innodb_lock_wait_timeout 設置為一個整數值,指示 MySQL 在允許其他事務修改那些最終受事務回滾的數據之前要等待多長時間(秒數)。
innodb_sync_spin_loops = 40
# 自旋鎖的輪轉數,可以通過 show engine innodb status 來查看。
# 如果看到大量的自旋等待和自旋輪轉,則它浪費了很多 cpu 資源。浪費 cpu 時間和無謂的上下文切換之間可以通過該值來平衡。
innodb_support_xa = ON
# 第一,支持多實例分布式事務(外部 xa 事務),這個一般在分布式數據庫環境中用得較多。
# 第二,支持內部 xa 事務,即支持 binlog 與 innodb redo log 之間數據一致性。
#innodb_file_format = barracuda
# InnoDB 文件格式,Antelope 是 innodb-base 的文件格式,Barracude 是 innodb-plugin 后引入的文件格式,同時 Barracude 也支持 Antelope 文件格式。
innodb_flush_method = O_DIRECT
# 設置 innodb 數據文件及 redo log 的打開、刷寫模式,fdatasync(默認),O_DSYNC,O_DIRECT
# 默認是 fdatasync,調用 fsync()去刷數據文件與 redo log 的 buffer
# 設置為為 O_DSYNC 時,innodb 會使用 O_SYNC 方式打開和刷寫 redo log, 使用 fsync()刷寫數據文件
# 設置為 O_DIRECT 時,innodb 使用 O_DIRECT 打開數據文件,使用 fsync() 刷寫數據文件跟 redo log
innodb_strict_mode = ON
# 開啟 InnoDB 嚴格檢查模式,在某些情況下返回 errors 而不是 warnings,默認值是 OFF
innodb_checksum_algorithm = strict_crc32
# checksum 函數的算法,默認為 crc32。可以設置的值有:innodb、crc32、none、strict_innodb、strict_crc32、strict_none
innodb_status_file = 1
# 啟用 InnoDB 的 status file,便于管理員查看以及監控
innodb_open_files = 3000
# 限制 Innodb 能打開的表的數據,默認為 300,數據庫里的表特別多的情況,可以適當增大為 1000。
innodb_thread_concurrency = 8
# 同時在 Innodb 內核中處理的線程數量。服務器有幾個 CPU 就設置為幾,建議默認值。
innodb_thread_sleep_delay = 500
#innodb_file_io_threads = 16
# 文件讀寫 I / O 數,這個參數只在 Windows 上起作用。在 LINUX 上只會等于4,默認即可。
innodb_read_io_threads = 16
# 設置 read thread(讀線程個數,默認是 4 個)
innodb_write_io_threads = 16
# 設置 write thread(寫線程個數,默認是 4 個)
innodb_io_capacity = 2000
# 磁盤 io 的吞吐量,默認值是 200. 對于刷新到磁盤頁的數量,會按照 inodb_io_capacity 的百分比來進行控制。
log_bin_trust_function_creators = 1
# 開啟 log-bin 后可以隨意創建 function,存在潛在的數據安全問題。
innodb_purge_threads = 1
# 使用獨立線程進行 purge 操作。
# 每次 DML 操作都會生成 Undo 頁,系統需要定期對這些 undo 頁進行清理,這稱為 purge 操作。
innodb_purge_batch_size = 32
# 在進行 full purge 時,回收 Undo 頁的個數,默認是 20,可以適當加大。
innodb_old_blocks_pct = 75
# LRU 算法,默認值是 37,插入到 LRU 列表端的 37%,差不多 3 / 8 的位置。
# innodb 把 midpoint 之后的列表稱為 old 列表,之前的列表稱為 new 列表,可以理解為 new 列表中的頁都是最為活躍的熱點數據。
innodb_change_buffering = all
# 用來開啟各種 Buffer 的選項。該參數可選的值為:inserts、deletes、purges、changes、all、none。
# changes 表示啟用 inserts 和 deletes,all 表示啟用所有,none 表示都不啟用。該參數默認值為 all。
[mysqldump]
max_allowed_packet = 256M
quick
# mysqldump 導出大表時很有用,強制從服務器查詢取得記錄直接輸出,而不是取得所有記錄后將它們緩存到內存中。
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
#ledir = /app/mysql/bin
# 包含 mysqld 程序的軟件安裝路徑,用該選項來顯式表示服務器位置。
感謝各位的閱讀!關于“如何查看 mysql 默認讀取 my.cnf 的目錄”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!