暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Mysql8.0高版本配置文件

原创 张鹏 2023-08-04
286

Mysql8.0高版本配置文件

vi /mysqldata/data/mysql{PORT}/my{PORT}.cnf

[client]
port = {PORT}
socket = /mysqldata/data/mysql{PORT}/sock/master.sock

[mysql]
no_auto_rehash

[mysqld]

generalparameter

server_id = 56100{PORT} # 建议调整为 IP 地址后两位 +MySQL 实例端口
user = mysql
port = {PORT}
skip_networking = 0
default_time_zone = “+8:00”
log_timestamps =SYSTEM
explicit_defaults_for_timestamp = ON
skip_name_resolve = ON
socket = /mysqldata/data/mysql{PORT}/sock/master.sock
bind-address = 0.0.0.0
character_set_server = utf8mb4
collation-server=utf8mb4_bin
character-set-client-handshake=FALSE
sql_mode=“NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES”
lower_case_table_names = 1
default-storage-engine = InnoDB
transaction_isolation=READ-COMMITTED
default_authentication_plugin=mysql_native_password
autocommit=1
secure_file_priv = NULL #不允许导入导出
#skip-grant-tables

mysql data andfile config

basedir = /usr/local/mysql-{VERSION-OS}
datadir = /mysqldata/data/mysql{PORT}/masterdb
tmpdir = /mysqldata/data/mysql{PORT}/tmpdir #临时表存放的地方
innodb_data_home_dir=/mysqldata/data/mysql{PORT}/masterdb
socket = /mysqldata/data/mysql{PORT}/sock/master.sock
pid_file = /mysqldata/data/mysql{PORT}/sock/master.pid
log_error = /mysqldata/data/mysql{PORT}/logs/master.err
log_error_verbosity = 3

binlog parameter

sync_binlog = 1
binlog_format = ROW
binlog_row_image = FULL
#MySQL 8.0.22,想启用MGR的话,需要设置binlog_checksum=NONE才行
binlog_checksum = CRC32
binlog_rows_query_log_events = 1
#expire_logs_days = 7 #5.7使用
binlog_expire_logs_seconds = 604800
max_binlog_size = 1G
max_binlog_cache_size = 2G
log_bin = /mysqldata/data/mysql{PORT}/binlog/master-bin
binlog_cache_size = 16M

performance parameter

open_files_limit = 65535
lock_wait_timeout = 3600
back_log = 1024
max_connections =4096
max_connect_errors = 1000000
table_open_cache = 1024
table_definition_cache = 1024
thread_stack = 512K
max_allowed_packet = 128M
wait_timeout = 3600
interactive_timeout = 3600
sort_buffer_size = 16M
join_buffer_size = 16M
read_buffer_size = 16M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
thread_cache_size = 768
tmp_table_size = 128M
max_heap_table_size = 128M

#myisam settings
key_buffer_size = 32M
myisam_sort_buffer_size = 128M

performance monitor parameter

slow_query_log = ON
log_slow_extra = 1 #Mysql 8.0使用
long_query_time = 1
log_slow_admin_statements = ON
log_slow_slave_statements = ON
log_queries_not_using_indexes = ON
log_throttle_queries_not_using_indexes = 60
min_examined_row_limit = 100
slow_query_log_file = /mysqldata/data/mysql{PORT}/logs/master-slow.log

gtid parameter

gtid_mode = ON
enforce_gtid_consistency = ON
master_info_repository = TABLE
relay_log_info_repository = TABLE
log_slave_updates = 1
skip-slave-start = 1

innodb parameter

innodb_buffer_pool_size = 2G # physical memory * 0.6
innodb_buffer_pool_instances = 1 # innodb_buffer_pool_size / 2G
innodb_read_io_threads = 16
innodb_write_io_threads =8
innodb_purge_threads = 4
innodb_page_cleaners = 4
innodb_flush_neighbors = 0
innodb_flush_log_at_trx_commit = 1
innodb_thread_concurrency = 0
innodb_sort_buffer_size = 67108864

innodb_data_file_path = ibdata1:1G:autoextend:max:10G
#为保持兼容性,尽量只使用一个文件
#不要写成ibdata1:100M;ibdata2:100M;ibdata3:100M:autoextend:max:10G形式,systemctl 启动不了
innodb_temp_data_file_path=ibtmp1:1G:autoextend:max:10G
#这个是临时表空间,而临时表存放路径tmpdir
innodb_page_size = 16384
innodb_log_buffer_size = 64M
innodb_log_file_size = 1G
innodb_log_files_in_group = 3
innodb_log_group_home_dir =/mysqldata/data/mysql{PORT}/masterdb

innodb_undo_directory =/mysqldata/data/mysql{PORT}/masterdb
innodb_max_undo_log_size = 4G
innodb_undo_log_truncate = ON
innodb_purge_rseg_truncate_frequency = 128

根据您的服务器IOPS能力适当调整

一般配普通SSD盘的话,可以调整到 10000 - 20000

配置高端PCIe SSD卡的话,则可以调整的更高,比如 50000 - 80000

innodb_io_capacity =20000 # STAT SSD 20000, NVMe SSD 100000
innodb_io_capacity_max = 40000 # 2 * innodb_io_capacity
innodb_flush_method=O_DIRECT
innodb_open_files = 65535
innodb_lru_scan_depth = 4000
innodb_lock_wait_timeout = 10
innodb_rollback_on_timeout = 1
innodb_print_all_deadlocks = 1
innodb_online_alter_log_max_size = 4G
#innodb_print_ddl_logs = 1 #8.0使用
innodb_status_file = 1
#注意: 开启 innodb_status_output & innodb_status_output_locks 后, 可能会导致log_error文件增长较快
innodb_status_output = 0
innodb_status_output_locks = 1

innodb_print_all_deadlocks = ON
innodb_file_per_table = ON
innodb_online_alter_log_max_size = 4G

innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1

#replication settings
relay_log = /mysqldata/data/mysql{PORT}/relaylog/relaylog-bin
relay_log_recovery = 1
slave_parallel_type = LOGICAL_CLOCK
#可以设置为逻辑CPU数量的2倍
slave_parallel_workers = 8
transaction_write_set_extraction = XXHASH64
binlog_transaction_dependency_tracking = WRITESET
slave_preserve_commit_order = 1
slave_checkpoint_period = 2

#loss-less semi-sync replication settings
#同时启用半同步复制的master和slave plugin
#semi-sync(master)
loose-rpl_semi_sync_master_timeout = 99999999
plugin_load = “rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so”
loose-rpl_semi_sync_master_enabled = 0
loose-rpl_semi_sync_master_wait_for_slave_count = 0 #初始一定要是0,否则主库不能执行任何命令
loose-rpl_semi_sync_master_wait_point = AFTER_SYNC
#semi-sync(slave)
loose-rpl_semi_sync_slave_enabled = 0

#如果是slave节点,强烈建议设置为read_only模式,避免误操作写入数据
#如果是master节点,则不要设置为read_only模式
#read_only = 1
#super_read_only = 1

#mgr settings
#loose-plugin_load_add = ‘mysql_clone.so’
#loose-plugin_load_add = ‘group_replication.so’
#loose-group_replication_group_name = “aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa1”
#MGR本地节点IP:PORT,请自行替换
#loose-group_replication_local_address = “172.16.16.10:33061”
#MGR集群所有节点IP:PORT,请自行替换
#loose-group_replication_group_seeds = “172.16.16.10:33061,172.16.16.11:33061,172.16.16.12:33061”
#loose-group_replication_start_on_boot = OFF
#loose-group_replication_bootstrap_group = OFF
#loose-group_replication_exit_state_action = READ_ONLY
#loose-group_replication_flow_control_mode = “DISABLED”
#loose-group_replication_single_primary_mode = ON

#innodb monitor settings
#innodb_monitor_enable = ‘ALL’
innodb_monitor_enable = “module_innodb”
innodb_monitor_enable = “module_server”
innodb_monitor_enable = “module_dml”
innodb_monitor_enable = “module_ddl”
innodb_monitor_enable = “module_trx”
innodb_monitor_enable = “module_os”
innodb_monitor_enable = “module_purge”
innodb_monitor_enable = “module_log”
innodb_monitor_enable = “module_lock”
innodb_monitor_enable = “module_buffer”
innodb_monitor_enable = “module_index”
innodb_monitor_enable = “module_ibuf_system”
innodb_monitor_enable = “module_buffer_page”
innodb_monitor_enable = “module_adaptive_hash”

#pfs settings
performance_schema = 1
#performance_schema_instrument = ‘%memory%=on’
performance_schema_instrument = ‘%lock%=on’

[mysqldump]
quick

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论