my.cnf 文件详解
# 客户端设置
[client]
port = 3306
# 默认情况下,socket文件应为/usr/local/mysql/mysql.socket,所以可以ln -s xx /tmp/mysql.sock
socket = /tmp/mysql.sock
# 服务端设置
[mysqld]
##########################################################################################################
# 基础信息
#Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id = 1
#服务端口号 默认3306
port = 3306
# 启动mysql服务进程的用户
user = mysql
##########################################################################################################
# 安装目录相关
# mysql安装根目录
basedir = /usr/local/mysql-5.7.21
# mysql数据文件所在位置
datadir = /usr/local/mysql-5.7.21/data
# 临时目录 比如load data infile会用到,一般都是使用/tmp
tmpdir = /tmp
# 设置socke文件地址
socket = /tmp/mysql.sock
##########################################################################################################
# 事务隔离级别,默认为可重复读(REPEATABLE-READ)。(此级别下可能参数很多间隙锁,影响性能,但是修改又影响主从复制及灾难恢复,建议还是修改代码逻辑吧)
# 隔离级别可选项目:READ-UNCOMMITTED READ-COMMITTED REPEATABLE-READ SERIALIZABLE
# transaction_isolation = READ-COMMITTED
transaction_isolation = REPEATABLE-READ
##########################################################################################################
# 数据库引擎与字符集相关设置
# mysql 5.1 之后,默认引擎就是InnoDB了
default_storage_engine = InnoDB
# 内存临时表默认引擎,默认InnoDB
default_tmp_storage_engine = InnoDB
# mysql 5.7新增特性,磁盘临时表默认引擎,默认InnoDB
internal_tmp_disk_storage_engine = InnoDB
#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8_general_ci
# 设置client连接mysql时的字符集,防止乱码
# init_connect='SET NAMES utf8'
# 是否对sql语句大小写敏感,默认值为0,1表示不敏感
lower_case_table_names = 1
##########################################################################################################
# 数据库连接相关设置
# 最大连接数,可设最大值16384,一般考虑根据同时在线人数设置一个比较综合的数字,鉴于该数值增大并不太消耗系统资源,建议直接设10000
# 如果在访问时经常出现Too Many Connections的错误提示,则需要增大该参数值
max_connections = 10000
# 默认值100,最大错误连接数,如果有超出该参数值个数的中断错误连接,则该主机将被禁止连接。如需对该主机进行解禁,执行:FLUSH HOST
# 考虑高并发场景下的容错,建议加大。
max_connect_errors = 10000
# MySQL打开的文件描述符限制,默认最小1024;
# 当open_files_limit没有被配置的时候,比较max_connections*5和ulimit -n的值,哪个大用哪个,
# 当open_file_limit被配置的时候,比较open_files_limit和max_connections*5的值,哪个大用哪个。
open_files_limit = 65535
# 注意:仍然可能出现报错信息Can't create a new thread;此时观察系统cat /proc/mysql进程号/limits,观察进程ulimit限制情况
# 过小的话,考虑修改系统配置表,/etc/security/limits.conf和/etc/security/limits.d/90-nproc.conf
# MySQL默认的wait_timeout 值为8个小时, interactive_timeout参数需要同时配置才能生效
# MySQL连接闲置超过一定时间后(单位:秒,此处为1800秒)将会被强行关闭
interactive_timeout = 1800
wait_timeou