mysql线上题目集合

打印 上一主题 下一主题

主题 1020|帖子 1020|积分 3060

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1、too many connections

连接数目太多,可以先通过以下命令先调解最大连接数,得以连接上mysql举行题目排查。
临时修改:
  1. gdb -p mysql进程id -ex "set max_connections=500" -batch
复制代码
gdb:这是 GNU 调试器,用于调试步伐。
-p 16732:这个选项告诉 gdb 附加到进程 ID 为 16732 的进程。这意味着 gdb 将连接到已经在运行的 MySQL 进程(假设 16732 是 MySQL 进程的 PID)。
-ex “set max_connections=500”:这个选项允许你在 gdb 启动时实行一条命令。这里的命令是 set max_connections=500,意图是设置 max_connections 变量为 500。
-batch:这个选项告诉 gdb 在实行完全部命令后退出。这样可以确保 gdb 不会进入交互模式,而是直接实行完命令并退出。
修改连接数后,连接上mysql,用以下命令排除下题目。
  1. SHOW VARIABLES LIKE 'log_error'; -- mysql日志文件路径
  2. SHOW FULL PROCESSLIST;  -- 查询当前连接进程列表
  3. SHOW VARIABLES LIKE 'max_%'; -- 查询最大连接数max_connections
  4. SHOW GLOBAL STATUS LIKE 'Max_used_connections'; -- 查询mysql本次启动以来最多的连接数
  5. SHOW STATUS LIKE 'Threads_connected'; -- 查询当前连接数量
  6. SET GLOBAL max_connections = 300;  -- 默认151,修改最大连接数
  7. SET GLOBAL wait_timeout = 300;  -- 默认8小时,设置连接的最大空闲时间为 8 小时,
  8. SET GLOBAL interactive_timeout = 300;  -- 默认8小时,设置交互式连接的最大空闲时间为 8 小时,如命令行,navicat中的查询都是以这个为准
  9. SELECT SLEEP(30);  -- 让查询暂停 30 秒
复制代码
通过mysql层面解决,在配置文件中永世修改最大连接数和空闲时间参数:
  1. [mysqld]
  2. max_connections = 300
  3. wait_timeout = 300
  4. interactive_timeout = 300
复制代码
通过代码步伐层面解决,如步伐bug,连接池配置,以下为dbcp连接池配置:
详细参考官网:DBCP连接池官网
  1.     <!-- 默认8 最大连接数 -->
  2.     <property name="maxActive" value="40"/>
  3.     <!-- 默认8 最大空闲连接数,一般为最大连接数的一半 -->
  4.     <property name="maxIdle" value="20"/>
  5.     <!-- 单位ms 获取连接的最大等待时间。如果超过这个时间仍然无法获取到连接,则抛出异常。设置为5-10秒是一个合理的范围。 -->
  6.     <property name="maxWait" value="10000"/>
  7.     <property name="defaultAutoCommit" value="true"/>
  8.     <property name="removeAbandoned" value="true"/>
  9.     <!-- 单位s 如果一个连接在7200秒内没有被归还到连接池,DBCP会认为这个连接已经被遗弃,并自动关闭它。    -->
  10.     <property name="removeAbandonedTimeout" value="7200"/>
  11.     <property name="logAbandoned" value="true"/>
  12.     <!-- 默认null 用于验证连接的SQL查询 -->
  13.     <property name="validationQuery" value="select 1"/>
  14.     <!-- 默认false 连接空闲时对其进行验证 -->
  15.     <property name="testWhileIdle" value="true"/>
  16.     <!-- 单位ms,默认-1不执行 空闲连接回收器线程运行的时间间隔,仅testWhileIdle为true时执行        -->
  17.     <property name="timeBetweenEvictionRunsMillis" value="30000"/>
  18.     <!-- 单位ms,默认1800000L 连接在池中空闲的最短存活时间 -->
  19.     <property name="minEvictableIdleTimeMillis" value="18000"/>
  20.     <!-- 默认3 每次运行空闲对象回收器线程时要检查的对象数量 -->
  21.     <property name="numTestsPerEvictionRun" value="3"/>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

没腿的鸟

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表