MySQL配置详解

  1. MYSQL和MARIADB配置文件模板(MY.CNF / MY.INI)
  2. 简述:
    MySQL和MariaDB的默认配置不适用于生产环境。 需要用于关键业务应用程序时,应更改my.cnf某些默认值。我们认为以下MySQL配置文件是MySQL,Galera Cluster,MariaDB和Percona Server的良好平均配置文件。 对于MySQL服务器,在大多数情况下不需要更多的性能调整。直接从此处下载带有wget的示例MySQL和MariaDB配置文件。
  3. 配置文件内容:
# 
#MySQL,Galera Cluster,MariaDB和Percona Server的FromDual配置文件模板 #位置:%MYCNF% #此模板旨在与MySQL 5.7和更高版本以及MariaDB 10.0和更高版本一起使用 #从此处获取最新更新: #https://www.fromdual.com/mysql-configuration-file-sample #

 [客户]

端口=%PORT%#默认3306 socket =%SOCKET%#在Ubuntu上使用mysqld.sock,否则与AppArmor冲突


 [mysql]

 no_auto_rehash max_allowed_pa​​cket = 16M提示='\ u @ \ h [\ d]>'#'user @ host [schema]>' default_character_set = utf8#可能该设置对于最新的Linux系统是正确的


 [mysqldump]

 max_allowed_pa​​cket = 16M


 [mysqld_safe]#早晚被systemd淘汰

 open_files_limit = 8192#您可能还必须调整操作系统设置用户= MySQL log-error =%INSTANCEDIR%/ log /%UNAME%_%INSTANCE%_error.log#调整AppArmor配置:/etc/apparmor.d/local/usr.sbin.mysqld


 [mysqld]

 #连接和线程变量

端口=%PORT%#默认3306 socket =%SOCKET%#在Ubuntu上使用mysqld.sock,否则与AppArmor冲突 basedir =%BASEDIR% datadir =%DATADIR% #tmpdir ='%INSTANCEDIR%/ tmp' #innodb_tmpdir ='%INSTANCEDIR%/ tmp'#MySQL 5.7

 max_allowed_pa​​cket = 16M default_storage_engine = InnoDB #explicit_defaults_for_timestamp = 1#MySQL 5.6,请仔细测试! 这可能会对应用程序产生影响。 #disable_partition_engine_check = true#从MySQL 5.7.17到5.7.20。 摆脱错误日志中的讨厌消息

 #character_set_server = utf8mb4#对于现代应用程序,默认为MySQL 8.0 #collat​​ion_server = utf8mb4_general_ci


 max_connections = 151#值<1000通常很好 max_user_connections = 145#限制一个特定的用户/应用程序 thread_cache_size = 151#最多可以设置max_connections


 #查询缓存(MySQL 8.0中不再存在!)

 #query_cache_type = 1#设置为0以避免全局QC Mutex #query_cache_size = 32M#避免由于QC清理锁而导致太大的QC(> 128M)!


 #会话变量

 sort_buffer_size = 2M#对于许多小型排序而言可能太大 tmp_table_size = 32M#确保您的临时结果不包含BLOB / TEXT属性

 read_buffer_size = 128k#如果您不知道自己在做什么,则拒绝更改此参数 read_rnd_buffer_size = 256k#如果您不知道自己在做什么,则拒绝更改此参数 join_buffer_size = 128k#如果您不知道自己在做什么,则拒绝更改此参数


 #其他缓冲区和缓存

 table_definition_cache = 1400#与您拥有的表一样多 table_open_cache = 2000#连接数x表/连接数(〜2) table_open_cache_instances = 16#5.7中的新默认值


 #MySQL错误日志

 log_error =%INSTANCEDIR%/ log /%UNAME%_%INSTANCE%_error.log#调整AppArmor配置:/etc/apparmor.d/local/usr.sbin.mysqld #log_timestamps = SYSTEM#MySQL 5.7,等效于旧行为 log_warnings = 2#MySQL 5.6,等效于log_error_verbosity = 3 #log_error_verbosity = 3#MySQL 5.7,等效于log_warnings = 2,MariaDB不支持此功能! innodb_print_all_deadlocks = 1 #wsrep_log_conflicts = 1#仅限于Galera!


 #慢查询日志

 slow_query_log_file =%INSTANCEDIR%/ log /%UNAME%_%INSTANCE%_slow.log#调整AppArmor配置:/etc/apparmor.d/local/usr.sbin.mysqld slow_query_log = 0 log_queries_not_using_indexes = 0#在开发人员系统上很有趣! long_query_time = 0.5 min_examined_row_limit = 100


 #通用查询日志

 general_log_file =%INSTANCEDIR%/ log /%UNAME%_%INSTANCE%_general.log#调整AppArmor配置:/etc/apparmor.d/local/usr.sbin.mysqld general_log = 0


 #性能架构

 #performance_schema = ON#对于MariaDB 10版本 performance_schema_consumer_events_statements_history_long = ON#MySQL 5.6 / MariaDB 10及更高版本


 #二进制日志记录和复制

 server_id =%SERVERID%#如果启用了二进制日志,则必须在MySQL 5.7和更高版本上设置! log_bin =%INSTANCEDIR%/ binlog /%UNAME%_%INSTANCE%_binlog#定位到datadir之外,调整AppArmor配置:/etc/apparmor.d/local/usr.sbin.mysqld #master_verify_checksum = ON#MySQL 5.6 binlog_cache_size = 1M binlog_stmt_cache_size = 1M max_binlog_size = 128M#增大流量以减少文件数量 sync_binlog = 1#设置为0或更高以提高写入性能 expire_logs_days = 5#我们将度过复活节假期 binlog_format = ROW#如果您想遇到一些麻烦,请使用MIXED #binlog_row_image =最小#自5.6 #auto_increment_increment = 2#对于主/主设置,两个节点都使用2 #auto_increment_offset = 1#对于主/主设置,请使用1和2


 #从属变量

 log_slave_updates = 1#如果从站用于备份和PiTR,则使用 read_only = 0#设置为1以防止在从站上写入 #super_read_only = 0#设置为1以防止具有SUPER特权的用户在Slave上写入。 从5.7开始,不在MariaDB中 #skip_slave_start = 1#避免启动从属线程 #relay_log =%UNAME%_%INSTANCE%_relay-bin #relay_log_info_repository =表#MySQL 5.6 #master_info_repository =表#MySQL 5.6 #slave_load_tmpdir ='%INSTANCEDIR%/ tmp'


 #崩溃安全复制主服务器

 #binlog_checksum = CRC32#默认 #sync_binlog = 1#从5.7.6开始默认,但是很慢! #innodb_support_xa = 1#默认值,自5.7.10起不再使用


 #崩溃安全复制从站

 #master_info_repository =表格 #relay_log_info_repository =表格 #relay_log_recovery = 1 #sync_relay_log_info = 1 #relay_log_purge = 1#默认 #slave_sql_verify_checksum = 1#默认


 #GTID复制

 #gtid_mode = ON#主从 #force_gtid_consistency = 1#主从

 #log_bin =%INSTANCEDIR%/ binlog /%UNAME%_%INSTANCE%_binlog#在5.6中也从属 #log_slave_updates = 1#在5.6中也从属


 #安全变量

 #local_infile = 0#如果您了解安全性 #secure_auth = 1#如果您了解安全性 #sql_mode = TRADITIONAL,ONLY_FULL_GROUP_BY,NO_ENGINE_SUBSTITUTION,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER#请谨慎更改 #skip_name_resolve = 0#如果您不信任DNS或遇到问题,则设置为1 #secure_file_priv ='%INSTANCEDIR%/ tmp'#chmod 750,调整AppArmor配置:/etc/apparmor.d/local/usr.sbin.mysqld


 #MyISAM变量

 key_buffer_size = 8M#如果仍然使用MyISAM,则设置为RAM的25-33% myisam_recover_options ='备用,力' #disabled_storage_engines ='MyISAM,MEMORY'#MySQL 5.7,请勿在mysql_upgrade期间/之前进行,这对Galera来说很重要!


 #MEMORY变量

 max_heap_table_size = 64M#应该大于或等于tmp_table_size


 #InnoDB变量

 innodb_strict_mode =开 #innodb_file_format_check = 1#MySQL 8.0不支持 #innodb_file_format =梭子鱼#对于动态和压缩的InnoDB表,默认值为5.7 innodb_buffer_pool_size = 128M#最多使用80%的可用RAM innodb_buffer_pool_instances = 8#如果InnoDB缓冲池巨大或并发性较高,则更大

 innodb_file_per_table = 1#是当今推荐的方式 #innodb_flush_method = O_DIRECT#O_DIRECT有时更适合直接连接存储 #innodb_write_io_threads = 8#如果您具有强大的I / O系统或SSD #innodb_read_io_threads = 8#如果您具有强大的I / O系统或SSD #innodb_io_capacity = 1000#如果您具有强大的I / O系统或SSD

 innodb_flush_log_at_trx_commit = 2#1表示持久性,0或2表示性能 innodb_log_buffer_size = 8M#如果innodb_flush_log_at_trx_commit = 0则更大 innodb_log_file_size = 256M#更大意味着更多的写吞吐量,但恢复时间更长


 #Galera特定的MySQL参数

 #default_storage_engine = InnoDB#Galera仅适用于InnoDB #innodb_flush_log_at_trx_commit = 2#通过提交给组可以实现持久性 #innodb_autoinc_lock_mode = 2#用于并行应用 #binlog_format =行#Galera仅适用于RBR #query_cache_type = 0#仅在主/从设置中对Galera使用QC #query_cache_size = 0


 #WSREP参数

 #wsrep_on = on#仅MariaDB> = 10.1 #wsrep_provider = /usr/lib/galera/libgalera_smm.so#Galera插件在Ubuntu上的位置? #wsrep_provider = /usr/lib64/galera-3/libgalera_smm.so#Galera插件在CentOS 7上的位置 #wsrep_provider = none#不使用Galera启动mysqld #wsrep_provider_options ='gcache.size = 1G'##根据您的工作量,为IST保留WS

 #wsrep_cluster_name =“我的酷Galera群集”#所有节点的群集名称相同 #wsrep_cluster_address =“ gcomm://192.168.0.2,192.168.0.3”#启动其他类似的节点

 #wsrep_node_name =“节点A”#唯一的节点名称 #wsrep_node_address = 192.168.0.1#复制完成的地址 #wsrep_node_incoming_address = 10.0.0.1#应用程序来自的外部接口 #wsrep_sync_wait = 1#如果您需要真正的完全同步复制(Galera 3.6及更高版本) #wsrep_slave_threads = 16#4-8每个内核,不超过wsrep_cert_deps_distance

 #wsrep_sst_method = rsync#SST方法(初始完全同步):mysqldump,rsync,rsync_wan,xtrabackup-v2 #wsrep_sst_auth = sst:secret#sst用户的用户名/密码 #wsrep_sst_receive_address = 192.168.2.1#我们的接收SST的地址


 #组复制参数

 #default_storage_engine = InnoDB#组复制仅适用于InnoDB #server_id =%SERVERID%#在所有3个节点上应该都不同 #log_bin =%INSTANCEDIR%/ binlog /%UNAME%_%INSTANCE%_binlog#定位在datadir之外,调整AppArmor配置:/etc/apparmor.d/local/usr.sbin.mysqld #binlog_format =行 #binlog_checksum = NONE#不是默认值! #gtid_mode = ON #force_gtid_consistency =开 #master_info_repository =表格 #relay_log_info_repository =表格 #log_slave_updates =开

 #slave_parallel_workers =   #1-2 /核心,最大  10 #slave_preserve_commit_order =开 #slave_parallel_type = LOGICAL_CLOCK

 #transaction_write_set_extraction = XXHASH64

 #Pine-group_replication_group_name =“ $(uuidgen)”#在所有节点上必须相同 #Pine-Group_Replication_Start_On_Boot =关闭 #lack-group_replication_local_address =“ 192.168.0.1” #Pine-group_replication_group_seeds =“ 192.168.0.1,192.168.0.2,192.168.0.3”#集群的所有节点 #Pine-Group_Replication_Bootstrap_Group = OFF #松散的组_复制_单一_原始_模式=假#=多原始

翻译自:
https://translate.google.com/translate?hl=zh-CN&sl=en&tl=zh-CN&u=https%3A%2F%2Fwww.fromdual.com%2Fmysql-configuration-file-sample&sandbox=1

你可能感兴趣的:(mysql,mysql)