本文最后更新于 2023-02-08 12:02
#
# MySql 配置文件说明
#
# Linux路径: /etc/my.cnf 或 ~/.my.cnf
# Windows在mysql根目录下 my.ini
#
# 指定配置文件启动 "--defaults-file"
# mysqld --defaults-file="C:\mysql\my.ini"
#
# 注册为Windows系统服务
# mysqld --install MySQL --defaults-file="C:\mysql\my.ini"
# 启动服务
# net start MySQL
# 删除服务
# mysqld --remove MySQL
# 初始化(随机密码,初始化后在系统日志查看)
# mysqld --initialize
# 初始化(空密码,直接使用root登录即可)
# mysqld --initialize-insecure 

[client]
# 客户端默认连接端口
port=3306
[mysql]
# 客户端默认字符集
default-character-set=utf8mb4
# 自动登录的root密码
#password=you passw

[mysqld]
# 服务端端口
port = 3306
# 设置mysql的安装目录
#basedir=C:\mysql
# 设置mysql数据库的数据的存放目录
#datadir=C:\mysql\Data
# 服务端使用的字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
# utf8mb4_unicode_ci 是基于标准的Unicode来排序和比较,能够在各种语言之间精确排序
# utf8mb4_general_ci 没有实现Unicode排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致。
# utf8mb4_general_ci 在比较和排序的时候更快
# utf8mb4_unicode_ci 在特殊情况下,Unicode排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
# 新数据库默认使用INNODB引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
# 变量lower_case_file_system说明是否数据目录所在的文件系统对文件名的大小写敏感。ON说明对文件名的大小写不敏感,OFF表示敏感。
# 为1时强制名称都转换为小写,为0时忽略可用大写表名
# https://blog.csdn.net/JesseYoung/article/details/40617031
# unix下lower_case_table_names默认值为 0 .Windows下默认值是 1 .Mac OS X下默认值是 2
lower_case_table_names=2
# SQL模式的参数,设置检验SQL语句的严格程度
sql-mode="NO_AUTO_CREATE_USER,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
# 开启定时事件触发
event_scheduler = 1

# 允许同时访问MySQL服务器的最大连接数
# max_connections=100
# 开启查询缓存  0 为关闭
query_cache_type = 1
# 参数表示查询时的缓存大小
query_cache_size=256M
# 所有进程打开表的总数
#table_cache=256
# 内存中临时表的总数
#tmp_table_size=64M
# 保留客户端线程的缓存
#thread_cache_size=8
# 读入缓冲区大小
read_buffer_size=2M
# 索引缓冲区的大小
key_buffer_size = 256M

# 附加的内存池,用来存储InnoDB表的内容
#innodb_additional_mem_pool_size=3M
# 设置提交日志的时机,若设置为1,InnoDB会在每次提交后将事务日志写到磁盘上。
innodb_flush_log_at_trx_commit=1
# 用来存储日志数据的缓存区的大小
innodb_log_buffer_size=64M
# 缓存的大小,InnoDB使用一个缓冲池类保存索引和原始数据
innodb_buffer_pool_size=1024M
# 日志文件的大小
innodb_log_file_size=10M
# 在InnoDB存储引擎允许的线程最大数
innodb_thread_concurrency=16
# 自动扩展InnoDB文件大小
#innodb-autoextend-increment=4M

join_buffer_size=4M
sort_buffer_size=2M
read_rnd_buffer_size=1M
max_allowed_packet=128M
explicit_defaults_for_timestamp=true

################################日志############################################
# http://www.cnblogs.com/kerrycode/p/6610874.html
#
# 关闭二进制日志
#skip-log-bin
#
# 如果是主从,必须开启开启二进制日志
# 开启二进制日志(8.0后默认开启),可用命令查看
# show variables like '%log_bin%'; 
#
# 日志文件名称
log-bin=mysql-bin
# BinLog 文件夹必须存在,否则无法启动服务
#log_bin=.\BinLog\BinLog
#log-bin-index=.\BinLog\index.txt
# 也可以指定日志路径
#log_bin=C:\mysql\Data
# binlog日志格式,默认采用STATEMENT,建议使用mixed
binlog_format=MIXED
# 1:  通过命令  purge binary logs to xxx; 表示删除某个日志之前的所有二进制日志文件。这个命令会修改index中相关数据
# 2: 清除某个时间点以前的二进制日志文件。purge binary logs before '2017-03-10 10:10:00';
# 3: 清除7天前的二进制日志文件 purge master logs before date_sub( now( ), interval 7 day);
# 4: 清除所有的二进制日志文件(当前不存在主从复制关系) reset master;
#
# 过期时间,二进制文件自动删除的天数,0代表不删除
expire_logs_days=10
# 单个日志文件大小
max_binlog_size=100M
#
# 系统变量sql_log_bin 用于控制会话级别二进制日志功能的开启或关闭,默认为ON,表示启用二进制日志功能。
# 通常用来恢复时来关闭当前会话的二进制日志
# show variables like '%binlog%';
# 系统变量 binlog_cache_size 表示为每个客户端分配binlog_cache_size大小的缓存,默认值32768。
# 二进制日志缓存使用的前提条件是服务器端使用了
# 支持事务的引擎以及开启了binlog功能,它是MySQL用来提高binlog的效率而设计的一个用于短时间内临时缓存binlog数据的内存区域。
# 一般来说,如果我们的数据库中没有什么大事务,写入也不是特别频繁,2MB~4MB是一个合适的选择。
# 但是如果我们的数据库大事务较多或多事务语句,写入量比较大,可适当调高binlog_cache_size。
# 同时,我们可以通过 binlog_cache_use 以及 binlog_cache_disk_use 来分析设置的binlog_cache_size是否足够,
# 是否有大量的 binlog_cache 由于内存大小不够而使用临时文件(binlog_cache_disk_use)来缓存了。
#binlog_cache_size = 192K

#设置server-id 设置主ID
server-id=0
#replicate-do-db=sw_cp
#设定需要复制的表
#replicate-do-table
#mysql> stop slave;
#mysql> change master to #master_host='203.195.241.164',master_user='remote',master_password='sowell888168',master_port=33070,master_log_file='mysql_bin_log.000006',master_log_pos=479793;
#mysql> start slave; ##开启从库 (stop slave:关闭从库)
#mysql> show slave status\G;

# 查看二进制日志
# show binlog events in 'mysql_bin_log.000004' from 800000;
# 删除二进制日志
# mysql -u root -p password -e "reset master;"
本站公开内容由 Vicanent 编辑整理发布,均采用 CC BY-SA 4.0 共享协议,您可自由地使用和转载。