参考 https://blog.csdn.net/mshxuyi/article/details/93881939
port = 3306 #默认
pid-file = /data/mysql/mysql.pid
basedir = /usr/local/mysql/ #程序安装目录
symbolic-link = 0 #多客户访问同一数据库,该选项默认开启
tmpdir = /usr/local/mysql/tmp/ #此目录被 MySQL用来保存临时文件
open_files_limit = 65535 #打开时,和max_connections对比,取大数
datadir = /var/lib/mysql #数据库目录
log-error = /var/lib/mysql/error.log
slow_query_log=on #开启慢查询日志相关
long_query_time=2 #默认10秒
slow_query_log_file = /var/log/mysql/slow_query.log #慢查询日志路径
log-queries-not-using-indexes = 1 #记录没有使用索引的sql
socket=/var/lib/mysql/mysql.sock #该条配置需在[client]段同时配置
default_storage_engine=InnoDB
innodb_file_per_table = on #InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间
innodb_buffer_pool_size=4G #生产中要改,建议为操作系统内存的70%-80%,需重启服务生效
skip_name_resolve = on #忽略主机名解析,提高访问速度(注意配置文件中使用主机名将不能解析)
lower_case_table_names = 1 #忽略表单大小写
character-set-server=utf8mb4 #设定默认字符为utf8mb4
1.使用innodb注意事项
a) 所有InnoDB数据表都创建一个和业务无关的自增数字型作为主键,对保证性能很有帮助;
b) 杜绝使用text/blob,确实需要使用的,尽可能拆分出去成一个独立的表;
c) 时间戳建议使用 TIMESTAMP 类型存储;
d) IPV4 地址建议用 INT UNSIGNED 类型存储;
e) 性别等非是即非的逻辑,建议采用 TINYINT 存储,而不是 CHAR(1);例可以使用0,1,2来表示,未知,男,女,优点搜索快,缺点显示/存储都要转换
f) 存储较长文本内容时,建议采用JSON/BSON格式存储;
# 查询缓存相关
query_cache_type=1 #0表示禁用缓存,1表示会缓存所有的结果,2表示只缓存SQL_CACHE缓存
query_cache_limit = 2M
query_cache_size = 64M 或32M 或128M
# 系统资源相关
back_log = 500 #如果系统在一个短时间内有很多连接,则需要增大该参数的值小于512
max_connections = 1000 #默认100,生产则需要增大该参数值,最大连接数16384
# 二进制日志相关
server_id=1
log_bin=mysql-bin
#log-bin-index=master-bin.index
expire_logs_days = 7
#binlog_format = row #默认为mix,新版中设为这两项可提高安全性
#binlog_row_image = minimal
max_binlog_size = 100m #默认是1G
binlog_cache_size = 4m
#binlog-do-db = DBNAME #指定mysql的binlog日志只记录哪个库
max_binlog_cache_size = 512m #生产4g
#skip-slave-start
更多不常用配置,请参考博客原文