????????目前使用的服務器系統是CentOS8.5 ,針對MySql8.4的配置示例,自己根據實際情況修改。
安裝MySql8.4時,MySql8.4沒有默認的my.cnf,需要用戶根據需要自行配置my.cnf文件,大概可看到下面這樣的參數列表,可能不同版本的mysql參數多少會有一些不一致:
[client]
# 客戶端連接 MySQL 服務器的端口號,通常是 3306。
port = 3306
# MySQL 服務器的套接字文件路徑,用于本地連接。
socket =/usr/local/mysql/mysql.sock
#編碼
default-character-set = utf8mb4[mysqld]
#Mysql服務的唯一編號 每個mysql服務Id需唯一
server-id=1
# MySQL 服務器監聽的端口號,通常也是 3306。
port = 3306
# MySQL 服務器的套接字文件路徑,用于本地連接。
socket = /usr/local/mysql/mysql.sock
# MySQL 的根目錄路徑,通常用于安裝 MySQL 的根目錄(default /usr)
basedir = /usr/local/mysql
# mysql存放數據庫文件的目錄路徑,通常與basedir不在一個文件夾內
datadir=/var/lib/mysql
# 啟用binglog日志文件,可以指定目錄,如果不指定則放在數據目錄下面
log_bin = mysql-bin
#存放 MySQL 進程 ID 的文件路徑。
pid-file = /usr/local/mysql/data/mysql.pid
#錯誤日志路徑
log_error = /usr/local/mysql/logs/mysql-error.log
#臨時數據路徑
tmpdir=/usr/local/mysql/tmp
#用于指定 MySQL 服務器綁定的 IP 地址,0.0.0.0 表示綁定到所有可用的 IP 地址。
bind-address = 0.0.0.0
# 跳過密碼登錄
#skip-grant-tables
#事務隔離級別,默認為可重復讀,mysql默認可重復讀級別(此級別下可能參數很多間隙鎖,影響性能)
#transaction_isolation=READ-COMMITTED
# 連接到 MySQL 服務器時初始化 SQL 命令。
init-connect = 'SET NAMES utf8mb4'
# 服務器默認的字符集。
character-set-server = utf8mb4
#允許在內核中等待的連接數量
back_log = 300
# 允許的最大并發連接數。
max_connections = 1000
# 最大連接錯誤數
max_connect_errors = 6000
# 打開的文件數限制。
open_files_limit = 65535
# 表緩存大小。
table_open_cache = 128
# 單個查詢的最大允許數據包大小
max_allowed_packet = 4M
# 二進制日志緩存大小
binlog_cache_size = 1M#內部內存臨時表的最大值 ,設置成128M。
#比如大數據量的group by ,order by時可能用到臨時表,
#超過了這個值將寫入磁盤,系統IO壓力增大
# 最大堆表大小
max_heap_table_size = 8M
# 臨時表大小
tmp_table_size = 16M# 讀取緩沖區大小
read_buffer_size = 2M
# 隨機讀取緩沖區大小
read_rnd_buffer_size = 8M
# 排序緩沖區大小
sort_buffer_size = 8M
# 連接緩沖區大小
join_buffer_size = 8M
# 鍵緩沖區大小
key_buffer_size = 4M
# 線程緩存大小
thread_cache_size = 8#禁用mysql的緩存查詢結果集功能
#后期根據業務情況測試決定是否開啟
#大部分情況下關閉下面兩項
# 查詢緩存類型 (1 表示啟用)? ?
#query_cache_type = 0
# 查詢緩存大小
#query_cache_size = 8M
# 查詢緩存限制
#query_cache_limit = 2M# 全文索引最小詞長度
ft_min_word_len = 4
# 二進制日志文件的格式
binlog_format = mixed# 二進制日志文件自動清理天數
expire_logs_days = 30#慢查詢sql日志設置
# 啟用慢查詢日志 (1 表示啟用)
#slow_query_log = 1
#慢查詢sql日志路徑
#slow_query_log_file = /usr/local/mysql/logs/mysql-slow.log
# 定義慢查詢的閾值時間
#long_query_time = 1#檢查未使用到索引的sql
log_queries_not_using_indexes=1# 性能模式 (0 表示禁用)
performance_schema = 0
#明確指定 MySQL 是否應該使用嚴格的模式來檢查日期和時間值:TIMESTAMP如果沒有顯示聲明NOT NULL,允許NULL值
explicit_defaults_for_timestamp=true
# 表名大小寫不敏感 (1 表示啟用:不區分大小寫)
lower_case_table_names = 1
# 禁用外部鎖定,用于控制表級鎖定
skip-external-locking
# 默認存儲引擎 (InnoDB)
default_storage_engine = InnoDB
# 每個表使用單獨的 InnoDB 文件
innodb_file_per_table = 1
# InnoDB 可以打開的最大文件數
innodb_open_files = 500
# InnoDB 緩沖池大小
innodb_buffer_pool_size = 64M
# InnoDB 寫 I/O 線程數
innodb_write_io_threads = 4
# InnoDB 讀 I/O 線程數
innodb_read_io_threads = 4
# InnoDB 線程并發度
innodb_thread_concurrency = 0
# InnoDB 清理線程數
innodb_purge_threads = 1
# InnoDB 日志刷新行為
innodb_flush_log_at_trx_commit = 2
# InnoDB 日志緩沖大小
innodb_log_buffer_size = 2M
# InnoDB 日志文件大小
innodb_log_file_size = 32M
# InnoDB 日志文件組數
innodb_log_files_in_group = 3
# InnoDB 最大臟頁百分比
innodb_max_dirty_pages_pct = 90
# InnoDB 鎖等待超時時間
innodb_lock_wait_timeout = 120
# 批量插入緩沖區大小
bulk_insert_buffer_size = 8M
#MySQL連接閑置超過一定時間后(單位:秒)將會被強行關閉
#MySQL默認的wait_timeout 值為8個小時, interactive_timeout參數需要同時配置才能生效
# 交互超時時間
interactive_timeout = 28800
# 等待超時時間
wait_timeout = 28800
[mysqldump]
quick
# mysqldump 最大允許數據包大小,如果有BLOB對象建議修改成1G
max_allowed_packet = 100M?
[myisamchk]
# MyISAM 檢查工具的鍵緩沖區大小
key_buffer_size = 8M ?
# MyISAM 檢查工具的排序緩沖區大小
sort_buffer_size = 8M?
# 讀緩存大小
read_buffer = 4M ?
# 寫緩存大小
write_buffer = 4M