mysql优化 个人笔记 - 非礼勿扰 -m16

一 、 服务器参数设置

vim /etc/my.conf

1. 通用设置

#数据文件存放目录
datadir=/var/lib/mysql 
# mysql.socket表示server和client在同一台服务器,
# 并且使用localhost进行连接,就会使用socket进行连接
socket=/var/lib/mysql/mysql.socket
# 存储mysql的pid 
# pid 可以去对应目录进行查找pid 
# ps -ef |grep mysql 也可以查看pid
pid_file=/var/lib/mysql/mysql.pid 
# 端口号
port=3306 
#默认存储引擎  建表的时候可以指定存储引擎 这里就不用改了
default_storage_engine=innoDB
# 当忘记Mysql密码时,可以在配置文件中配置这个参数,就会跳过权限验证,
# 不需要密码就可以登录mysql 	
skip-grant-tables

2. 字符集

数据库字符集一般设置为:utf8mb4 -- UTF-8 Unicode

# 客户端数据的字符集
character_set_client
#连接字符集 mysql处理客户端发来请求时会把字符转换成连接字符集
character_set_connection
# mysql发送给客户端结果集时使用的字符集
character_set_results
# 数据库默认字符集
character_set_database
# mysql server的默认字符集
character_set_server
 

3.连接


# 最大连接数
max_connections 
# 查看默认最大连接数 我这默认是151 
show variables like '%max_connections%'
# 临时修改最大连接数
set global max_connections = 1024;
# 查看 1024
show variables like '%max_connections%'

# 限制每个用户连接个数
max_user_connections 
# 查询  默认是0 不限制 
show variables like '%max_user_connections%'

# mysql能够暂存的连接数量,
# 当mysql的线程在一个很短时间内得到非常多的连接请求时,就会起作用,
# 如果mysql的连接数量达到max_connections时,新的请求会被存储在堆栈中,以等待某一个连接释放资源,
# 如果等待连接的数量超过back_log,则不再接受连接资源 
#可以看下图  如果用户B 请求的时候用户A不释放连接的话 那么前俩就会被放到堆栈 最后一个连接请求就会被拒绝
# 跟线程池的阻塞队列一样 一样 的 (线程池有4中拒绝策略 可以自定义)
# 这个值如果太大  客户端等待就太多了 就阻塞了 响应慢了 
back_log


# mysql在关闭一个-----非交互的连接-----之前需要等待的时长
# 也就是类似连接池中的空闲时长
# 长连接  就是非交互的连接 一般项目中jar驱动连接mysql都是长连接 
# 自己写连接池 8小时连接断开  就需要设置这个属性wait_timeout 
wait_timeout

# mysql在关闭一个-----交互的连接-----之前需要等待的时长
# 短连接 就是交互的连接 一般黑窗口交互就是tcp的  交互式连接
interactive_timeout
# 
 

mysql优化 个人笔记 - 非礼勿扰 -m16_第1张图片

下一篇继续 sleep了

你可能感兴趣的:(mysql)