前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL之my.cnf文件常用参数

MySQL之my.cnf文件常用参数

作者头像
AsiaYe
发布2020-01-15 15:17:35
2.4K0
发布2020-01-15 15:17:35
举报
文章被收录于专栏:DBA随笔DBA随笔

//

MySQL之my.cnf文件常用参数

//

MySQL的配置文件,想必大家都不陌生,今天再来说说配置文件中的一些常用配置,并非最合理的配置,仅供参考,只有了解自己的生产环境,才能根据环境找到最适合你的配置文件参数。

首先,我们知道,配置文件中包含了很多个配置的组,如下:

代码语言:javascript
复制
[server]
(具体的启动选项,作用于所有的服务器程序)

[mysqld]
(具体的启动选项,作用于mysqld服务器程序)

[mysqld-5.7]
(具体的启动选项,作用于mysqld5.7版本服务器程序)

[mysqld_safe]
(具体的启动选项,作用于mysqld_safe服务器程序)

[mysql]
(具体的启动选项,作用于mysql客户端程序)

[mysqladmin]
(具体的启动选项,作用于mysqladmin客户端程序)

[client]
(具体的启动选项,作用于所有的客户端程序)

不同的程序可以读取不同的组,以下是具体内容:

代码语言:javascript
复制
mysqld        [server],[mysqld]
mysqld_safe   [mysqld]、[server]、[mysqld_safe]
mysql.server  [mysqld]、[server]、[mysql.server]
mysql         [mysql]、[client]
mysqladmin    [mysqladmin]、[client]
mysqldump     [mysqldump]、[client]

左侧的程序,分别可以读取右侧的参数组的内容。

--loose前缀

这里,在重点强调一个loose的参数,在MySQL中,如果一个参数前面加上了loose这个限定,那么该参数及时在某个版本中不存在了,那么MySQL程序不会报错,只会给出一个警告,这个特点在单机多实例多版本的时候特别有用,当你复制别人的配置文件的时候也比较有用,详细的介绍,大家可以看MySQL的官方文档,这里我截了个图,供大家参考。

https://dev.mysql.com/doc/refman/5.7/en/option-modifiers.html

说句题外话,如果大家想看阿里云服务器的配置文件,不防购买一台rds,直接在上面使用show variables like '%%';这个语句会输出阿里云rds的配置文件。

下面开始正题,常见的配置文件都包含哪些内容(注意,有与参数太多,这里配置文件参数不再做一一解释,想了解更加详细的内容,请参阅官方文档,里面有更细致的说明):

[client]

###客户端使用utf8字符集###

loose-default-character-set = utf8 [mysqld] #服务器一些通用参数#

# 连接相关参数# user = mysql port = 4316 socket = /data/mysql_4316/tmp/mysql.sock pid-file = /data/mysql_4316/tmp/mysql.pid max_allowed_packet = 64M default-storage-engine = InnoDB max_connections = 650 max_user_connections = 640 max_connect_errors = 1000000 back_log = 200 thread_cache_size = 100 open-files-limit = 16384

#文件导出的参数# secure_file_priv=''

# 超时相关参数# interactive_timeout = 28800 wait_timeout = 28800

#服务器目录和数据文件目录 basedir = /usr/local/mysql datadir=/data/mysql_4316/data tmpdir = /data/mysql_4316/tmp

#服务器字符集#

character-set-server = utf8

#查询缓存(比较鸡肋的功能,基本弃用) query_cache_type = 0 query_cache_size = 0M

# 查询常见的一些buffer参数,需要根据实际情况调整,不可直接照搬# sort_buffer_size = 2M join_buffer_size = 2M tmp_table_size = 64M thread_stack = 192K key_buffer_size = 2M sort_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 16M join_buffer_size = 2M

# 表缓存# table_open_cache = 2048 table_definition_cache = 1400

#内存变量# max_heap_table_size = 64M memlock #错误日志参数# log_error=/data/mysql_4316/log/mysql.err log-warnings = 2 该参数之前写过一篇文章,要了解可以查看:

MySQL错误日志激增案例

#慢日志参数# slow_query_log = 1 slow_query_log_file=/data/mysql_4316/log/slowquery.log long_query_time = 1 log_queries_not_using_indexes = 1(是否开启索引检测) # 通用日志参数 general_log = 0 general_log_file=/data/mysql_4316/log/general.log

#binlog和复制相关的参数#

log-bin=/data/mysql_4316/innodblog/mysqlbin binlog_cache_size = 4M max_binlog_cache_size = 4294967296 max_binlog_size = 1G expire_logs_days = 7 sync_binlog = 1 binlog_format = ROW binlog_rows_query_log_events=on

# 如果你的服务器作为从库,则需要配置下面参数 log_slave_updates =1 read_only = 0 relay-log = /data/mysql_4316/log/slave-relay-bin relay-log-index = /data/mysql_4316/log/slave-relay-bin.index master_info_repository=TABLE relay_log_info_repository=TABLE

#安全相关参数

skip-name-resolve = 1 safe-user-create = 1 secure_auth = 1 skip-symbolic-links

###innodb相关参数### # 缓存相关的参数 innodb_buffer_pool_size=200M innodb_buffer_pool_instances = 1 innodb_max_dirty_pages_pct = 75 #IO相关的参数,有些是默认的,不需要配置 innodb_use_native_aio = 1 innodb_flush_method = O_DIRECT innodb_adaptive_flushing = 1 innodb_io_capacity = 200 innodb_read_io_threads = 4 innodb_write_io_threads = 4 innodb_purge_threads = 4 innodb_lru_scan_depth=1000 #目录相关参数 innodb_data_home_dir=/data/mysql_4316/data innodb_data_file_path = ibdata1:1G:autoextend innodb_file_per_table = 1 # redo log相关参数 innodb_log_group_home_dir=/data/mysql_4316/innodblog innodb_log_files_in_group = 2 innodb_log_file_size = 1G innodb_log_buffer_size = 16M innodb_flush_log_at_trx_commit = 1 # 锁、并发、事务相关参数# innodb_table_locks = 1 innodb_lock_wait_timeout = 50 innodb_thread_concurrency = 0 innodb_rollback_on_timeout=1 innodb_print_all_deadlocks=on

#数据恢复相关 innodb_fast_shutdown = 1 #innodb_force_recovery=1(看名字就知道很厉害) #是否开启全局事务id gtid_mode=ON enforce_gtid_consistency=ON #从节点复制并行度相关配置 slave_parallel_type=LOGICAL_CLOCK slave_parallel_workers=8 [mysqldump] quick max_allowed_packet = 64M [mysql] no-auto-rehash max_allowed_packet = 64M prompt=mysql--\\u@\\h:\\d \\R:\\m:\\s>> init-command="set interactive_timeout=28800;set wait_timeout=28800;"

以上为常用的MySQL参数,再次强调,不一定适合所有人,不理解的参数,请到官方文档查询。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档