1、先創(chuàng)建文件夾:
mkdir d:\mysql\data
mkdir d:\mysql\log
type nul>d:\mysql\log\mysql-slow.log
2、配置文件
[mysqld]
#Mysql服務實例的唯一編號 每個mysql服務實例Id需唯一
server-id =1
# 設置安裝目錄
basedir=d:\mysql
# 設置數(shù)據(jù)目錄
datadir=d:\mysql\data
#快速預熱緩沖池
innodb_buffer_pool_dump_at_shutdown=1
innodb_buffer_pool_load_at_startup=1
#大小寫不敏感:1,大小寫敏感0
lower_case_table_names=0
#允許任意IP訪問
bind-address = 0.0.0.0
#把未使用到索引的sql記錄到慢查詢?nèi)罩?/p>
log_queries_not_using_indexes? = 1
#日志輸出會寫表,也會寫日志文件,為了便于程序去統(tǒng)計,所以最好寫表
log_output=table,File
#是否打開慢查詢sql日志
slow_query_log= 1
#慢查詢sql日志的文件地址
slow_query_log_file= d:\mysql\log\mysql-slow.log
#慢查詢執(zhí)行的秒數(shù),超過這個值則會被記錄到慢查詢?nèi)罩?/p>
long_query_time = 1
#服務端口號 默認3306
port = 3306
#數(shù)據(jù)庫默認字符集,注意不要再用utf8了
character-set-server = utf8mb4
#數(shù)據(jù)庫字符集對應一些排序規(guī)則,要屬于character-set-server對應值的集合內(nèi)
collation-server = utf8mb4_general_ci
#設置client連接mysql時的字符集,防止亂碼
init_connect='SET NAMES utf8mb4'
#二進制日志文件
log-bin=mysql-bin
log-bin-index=mysql-bin.index
#mysql binlog日志文件保存的過期時間默認為30天,過期后自動刪除expire_logs_days將要棄用
binlog_expire_logs_seconds=2592000
#實驗環(huán)境下, innodb_buffer_pool_instances=8 在很小的 buffer_pool 大小時有很大的不同,而使用大的 buffer_pool 時,innodb_buffer_pool_instances=1 的表現(xiàn)最棒
innodb_buffer_pool_instances=8
#限制單個文件大小,默認大小:1,073,741,824,即1G,太大了
max_binlog_size = 100M
#數(shù)據(jù)庫錯誤日志文件
log_error=d:\mysql\log\mysqld.log
#MySQL連接閑置超過一定時間后(單位:秒)將會被強行關閉? MySQL默認的wait_timeout 值為8個小時,interactive_timeout參數(shù)需要同時配置才能生效
interactive_timeout = 1800
wait_timeout = 1800
#my.cnf中的配置項:禁用域名的解析
#skip_name_resolve = 1
#my.cnf中的配置項:innodb是否為每個表使用獨立的表空間文件
innodb_file_per_table = 1
#innodb_buffer_pool_size的默認大小是:128M,定義了buffer中每個chunk的大小,定義了buffer中chunk的數(shù)量
innodb_buffer_pool_chunk_size=128M
innodb_buffer_pool_instances=128M
#my.cnf中的配置項:連接限制之最大并發(fā)連接數(shù),不能超過100000,SHOW GLOBAL STATUS LIKE 'Max_used_connections';從這里可以看到從服務開始使用的最大連接數(shù)
#variables 里的max_user_connections的區(qū)別。
#Max_used_connections /max_connections * 100% ≈ 85%
max_connections=600
max_connect_errors=1000
max_user_connections=400
#設置臨時表最大值,這是每次連接都會分配,不宜設置過大 max_heap_table_size 和 tmp_table_size 要設置一樣大
max_heap_table_size = 2048M
tmp_table_size = 2048M
#每個連接都會分配的一些排序、連接等緩沖,一般設置為 2MB 就足夠了
sort_buffer_size = 2M
join_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
#my.cnf中的配置項:最大允許的包 max_allowed_packet
max_allowed_packet= 1024M
#0,每秒寫一次log,并flush到磁盤? ? 1,每次事務提交時,寫log,同時flush到磁盤? 2,每次事務提交時寫log,每秒flush一次到磁盤
innodb_flush_log_at_trx_commit = 1
#如果是專用的DB服務器,且以InnoDB引擎為主的場景,通常可設置物理內(nèi)存的60%
innodb_buffer_pool_size = 4G
#InnoDB的log buffer,通常設置為 64MB 就足夠了
innodb_log_buffer_size = 64M
#InnoDB redo log大小,通常設置256MB 就足夠了
innodb_log_file_size = 256M
#InnoDB redo log文件組,通常設置為 2 就足夠了
innodb_log_files_in_group = 2
#InnoDB共享表空間初始化大小,默認是 10MB,改成 1GB,并且自動擴展
innodb_data_file_path = ibdata1:1G:autoextend
#設置臨時表空間最大4G
innodb_temp_data_file_path=ibtmp1:500M:autoextend:max:4096M
#啟用InnoDB的status file,便于管理員查看以及監(jiān)控,
#當設置為0,該模式速度最快,但不太安全,mysqld進程的崩潰會導致上一秒鐘所有事務數(shù)據(jù)的丟失。
#當設置為1,該模式是最安全的,但也是最慢的一種方式。在mysqld 服務崩潰或者服務器主機crash的情況下,binary log 只有可能丟失最多一個語句或者一個事務。
#當設置為2,該模式速度較快,也比0安全,只有在操作系統(tǒng)崩潰或者系統(tǒng)斷電的情況下,上一秒鐘所有事務數(shù)據(jù)才可能丟失。
innodb_status_file = 1
#設置事務隔離級別為 READ-COMMITED,提高事務效率,通常都滿足事務一致性要求
transaction_isolation = READ-COMMITTED
##作為從庫時生效,從庫復制中如何有慢sql也將被記錄
#log_slow_slave_statements = 1
#InnoDB使用后臺線程處理數(shù)據(jù)頁上讀寫I/0請求的數(shù)量,允許值的范圍是1-64
#假設CPU是2顆4核的,且數(shù)據(jù)庫讀操作比寫操作多,可設置
#innodb_read_io_threads=5
#innodb_write_io_threads=3
[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8
[client]
#服務端口號 默認3306
port = 3306
#客戶端默認字符集
default-character-set=utf8