1、先创建文件夹:
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
# 设置数据目录
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记录到慢查询日志
log_queries_not_using_indexes = 1
#日志输出会写表,也会写日志文件,为了便于程序去统计,所以最好写表
log_output=table,File
#是否打开慢查询sql日志
slow_query_log= 1
#慢查询sql日志的文件地址
slow_query_log_file= d:\mysql\log\mysql-slow.log
#慢查询执行的秒数,超过这个值则会被记录到慢查询日志
long_query_time = 1
#服务端口号 默认3306
port = 3306
#数据库默认字符集,注意不要再用utf8了
character-set-server = utf8mb4
#数据库字符集对应一些排序规则,要属于character-set-server对应值的集合内
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
#实验环境下, innodb_buffer_pool_instances=8 在很小的 buffer_pool 大小时有很大的不同,而使用大的 buffer_pool 时,innodb_buffer_pool_instances=1 的表现最棒
innodb_buffer_pool_instances=8
#限制单个文件大小,默认大小:1,073,741,824,即1G,太大了
max_binlog_size = 100M
#数据库错误日志文件
log_error=d:\mysql\log\mysqld.log
#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭 MySQL默认的wait_timeout 值为8个小时,interactive_timeout参数需要同时配置才能生效
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的数量
innodb_buffer_pool_chunk_size=128M
innodb_buffer_pool_instances=128M
#my.cnf中的配置项:连接限制之最大并发连接数,不能超过100000,SHOW GLOBAL STATUS LIKE 'Max_used_connections';从这里可以看到从服务开始使用的最大连接数
#variables 里的max_user_connections的区别。
#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引擎为主的场景,通常可设置物理内存的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,便于管理员查看以及监控,
#当设置为0,该模式速度最快,但不太安全,mysqld进程的崩溃会导致上一秒钟所有事务数据的丢失。
#当设置为1,该模式是最安全的,但也是最慢的一种方式。在mysqld 服务崩溃或者服务器主机crash的情况下,binary log 只有可能丢失最多一个语句或者一个事务。
#当设置为2,该模式速度较快,也比0安全,只有在操作系统崩溃或者系统断电的情况下,上一秒钟所有事务数据才可能丢失。
innodb_status_file = 1
#设置事务隔离级别为 READ-COMMITED,提高事务效率,通常都满足事务一致性要求
transaction_isolation = READ-COMMITTED
##作为从库时生效,从库复制中如何有慢sql也将被记录
#log_slow_slave_statements = 1
#InnoDB使用后台线程处理数据页上读写I/0请求的数量,允许值的范围是1-64
#假设CPU是2颗4核的,且数据库读操作比写操作多,可设置
#innodb_read_io_threads=5
#innodb_write_io_threads=3
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
#服务端口号 默认3306
port = 3306
#客户端默认字符集
default-character-set=utf8