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 也可以查看pidpid_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;# 查看 1024show 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#
下一篇继续 sleep了
标签:set,非礼,max,m16,字符集,mysql,连接,character 来源: https://blog.51cto.com/u_12198094/2705130