首页 > 其他 > 详细

my.cnf(综合版~更贴近生产)

时间:2021-03-07 22:06:23      阅读:34      评论:0      收藏:0      [点我收藏+]

1.这里先说明一下主库和从库在主从复制的配置上是有些不同的

技术分享图片

 

2.my.cnf     以下配置是综合姜承尧和知数堂

[client]
port=xxx   ##自己的端口号
socket    = /data/mysql/mysql.sock  ##自己的套字节的路径

[mysql]
prompt="\u@mysqldb \R:\m:\s [\d]> "
no-auto-rehash 

[mysqld]

###############basic settings#############
user=mysql
port=xxxx           #自己定义
server_id=xxxx      #自己定义 
basedir=/usr/local/mysql  #这个一般比较固定
datadir=/data/mysql #自己定义,这个一般要求程序和数据进行分离
socket =/data/mysql/mysql.sock  #自己定义
pid-file=/data/mysql/mysqld.pid #路径自己定义
report-host=xxxxx  #这里填写本机的ip的地址
##bind_address=xxx   #这里表示运行能访问此数据库的ip地址

log_timestamps=system
character_set_server=utf8mb4
skip_name_resolv =1  #不对DNS进行解析
transaction_isolation = READ-COMMITTED
max_connections = 800   #自己定义
max_connect_errors = 1000 #自己定义
interactive_timeout = 1800
wait_timeout = 1800
explicit_defaults_for_timestamp = 1
query_cache_size = 0  ##关闭查询缓冲
query_cache_type = 0
tmpdir = /tmp

tmp_table_size = 67108864         ##大小要视情况而定
max_allowed_packet = 16777216    ##大小要视情况而定
##sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"  ###这个5.7中有默认
key_buffer_size = 32M ##表示索引(Myisam)缓冲区大小,它决定索引处理的速度,特别是读的速度。默认是8M
read_rnd_buffer_size = 33554432    ##大小要视情况而定
sort_buffer_size = 33554432        ##大小要视情况而定
join_buffer_size = 134217728    ##大小要视情况而定
read_rnd_buffer_size = 4M ##MySql的随机读(查询操作)缓冲区大小
bulk_insert_buffer_size = 64M



###############################log  settings(error log  slow log )###############
log_error=/data/mysql/error.log  ###路径自己定义 
slow_query_log = 1
slow_query_log_file = slow.log   ###路径自己定义,默认是放在数据目录下,默认是主机名-slow.log   
log_queries_not_using_indexes = 1
log_slow_admin_statements = 1
log_slow_slave_statements = 1
log_throttle_queries_not_using_indexes = 10
expire_logs_days = 90
long_query_time = 2
min_examined_row_limit = 100

###################replcation settings#######################
log_bin=/data/mysql/binlog/ ##这个一般我会定义一个binlog目录,然后将binlog日志放里面去
gtid_mode = on
enforce_gtid_consistency = 1
log_slave_updates
binlog_format = row 
master_info_repository = TABLE
relay-log-purge = 1  ##这个默认是打开的,表示是否自动清空不再需要的中继日志
relay_log_info_repository = TABLE    #sql线程高可用
relay_log_recovery = 1               #io线程高可用
relay_log = relay.log ##这个路径自己定义
slave_skip_errors = ddl_exist_errors ##复制时跳过DDL操作错误


########################innodb settings###############
innodb_page_size = 8192            #这是数据页的大下
innodb_buffer_pool_size = 6G    #根据实际情况修改
innodb_buffer_pool_instances = 8
innodb_buffer_pool_load_at_startup = 1      #预热功能
innodb_buffer_pool_dump_at_shutdown = 1
innodb_open_files = 65535             ##这个是打开文件的最大数
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1

innodb_lru_scan_depth = 2000  ##这个默认是1024
innodb_data_file_path = ibdata1:1G:autoextend  ###按我理解是当系统表空间(ibdata1)达到阈值时,它会按照1G的容量进行自动扩容

innodb_lock_wait_timeout = 5        ##锁等待时间
innodb_print_all_deadlocks = 1  #当启用该选项,所有信息死锁在 InnoDB用户交易被记录在 mysqld 错误日志


innodb_io_capacity = 4000
innodb_io_capacity_max = 8000

innodb_log_group_home_dir = /redolog/  #根据实际情况修改
innodb_log_buffer_size = 16777216
innodb_log_file_size = 2G        ##这个主要是redo log 日志的大小,默认是48M
innodb_log_files_in_group = 3 

innodb_undo_directory = /undolog/      #根据实际情况修改
innodb_max_undo_log_size = 4G    ##这个表示每个undo日志的最大容量,默认是1G
innodb_undo_logs = 128
innodb_undo_tablespaces = 3
innodb_undo_log_truncate = 1


innodb_flush_sync = 0   ##默认是禁止
innodb_flush_neighbors = 1

innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_purge_threads = 4
innodb_page_cleaners = 4

innodb_max_dirty_pages_pct = 50 ##这个是脏页的刷新占比,默认是75%
innodb_flush_method = O_DIRECT ##这个表示数据页和redo log做持久化时用到的一个刷盘策略。



innodb_large_prefix = 1  ##这个在5.7中是默认开启的
innodb_thread_concurrency = 0 ##并发线程数不做限制

innodb_strict_mode = 1
innodb_sort_buffer_size = 67108864 

myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1


#innodb_status_file = 1  ##这是开启innodb状态的参数,

#innodb_status_output = 0  ##这个表示开启或关闭标准监控器
#innodb_status_output_locks = 1 ##这个表示开始或关闭锁监控器,如果要启动锁监控器,那么一定要开启标准监控器

#innodb_rollback_on_timeout = 1

#performance_schema
performance_schema = 1
#performance_schema_instrument = %memory%=on
#performance_schema_instrument = %lock%=on


##########semi sync replication settings(半同步复制,这种复制使得数据更有安全一些)###########
plugin_dir=/usr/local/mysql/lib/plugin      #根据实际情况修改
plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
loose_rpl_semi_sync_master_enabled = 1  #控制是否在源上启用半同步复制。要启用或禁用插件,请将此变量分别设置为1或0。默认值为0(关闭)
loose_rpl_semi_sync_slave_enabled = 1    #
loose_rpl_semi_sync_master_timeout = 5000 #一个以毫秒为单位的值,用于控制源在超时并恢复为异步复制之前等待复制副本提交确认的等待时间。默认值为10000(10秒)。


#######################多线程复制(这个一般是在从库上进行配置)################################
#slave_parallel_type=logical_clock;
#slave_parallel_workers=4



[mysqldump]
quick
max_allowed_packet = 32M   ##mysql根据配置文件会限制server接受的数据包的大小

 

my.cnf(综合版~更贴近生产)

原文:https://www.cnblogs.com/zmc60/p/14496320.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!