MySQL配置解析
TIPS
socket
是一种抽象层,应用程序通过它收发数据,用于本地连接
(同一台机器的客户端和服务器),这种通信方式比TCP/IP
更快,因为避免了网络协议栈的开销
[client]
# 客户端连接信息端口号、socket路径,字符集
port = 3306
socket = /path/***.sock
default-character-set=utf8mb4
[mysqld]
# mysql基本配置信息,监听的IP、端口号、socket路径、数据目录、临时目录
bind-address = 0.0.0.0 # 默认0.0.0.0 监听所有来源IP的访问
port = 3306 # 默认3306端口,需要和client端口保持一致
pid-file = /path/***.pid # 唯一数字标识符,标识MySQL服务器进程避免冲突
socket = /path/***.sock # 本地socket访问,需要和client保持一致
basedir = /path/mysql
datadir = /path/mysql/data
tmpdir = /path/mysql/tmp
# 监听队列连接数上限,如果有搞的连接率需求且出现connection refused
back-log = 50
# 关闭TCP/IP监听,当服务器只允许本地访问数据库时,增强安全
# skip-networking
# 服务所允许的会话数上限
max_connections = 100
`max_connections 控制的是 MySQL 服务器允许的并发连接总数,而 back_log 控制的是在短时间内可以积压的未完成连接请求的数量。
`max_connections 影响的是服务器处理连接的能力,而 back_log 影响的是服务器在网络繁忙时处理新连接请求的能力。
`max_connections 的值通常设置得较高,以适应预期的并发用户数,而 back_log 的值通常设置得较低,因为它只在网络端口非常繁忙时起作用。`
# 每个客户端连接最大错误允许数量
max_connect_errors = 10
# 所有线程所打开表的数量,决定了服务器可以同时打开的表的最大数量.
# 增加此值就增加了mysqld所需要的文件描述符的数量
# 这样你需要确认在[mysqld_safe]中 “open-files-limit” 变量设置打开文件数量允许至少4096
table_cache = 2048
# 外部锁
external-locking
# 请求包最大
max_allowed_packet = 16M
binlog_cache_size = 1M
max_heap_table_size = 64M
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size = 8
...