在线结算、在线支付、自动到帐、自动上货、网购批发 专注服务中小企业 会员中心 | 设为首页 | 加入收藏 | 繁体中文
服务热线:400-6966-014 点击这里给我发消息
网站首页软件购买软件动态软件下载常见问题网络加速器快速备案My18高防云My18互联通空间域名合作商招贤纳士关于我们媒体报道
栏目导航
新闻搜索
热门点击
联系我们
  • 网址:www.we0546.com
  • 邮箱:800093106@b.qq.com
  • 电话:4006966014
  • 地址:山东省东营市东营区西二路471号北海嘉园C座305号

  • 首页新闻中心  
     
    mysql提示too many connections
    来源: 点击数:110次 更新时间:2018-12-19 20:00:15

    php网站报方法不存在

    检查发现apache和mysql都是运行状态,重启后恢复,

    通过出现问题时用navicat访问mysql数据库发现提示too many connections

    这是mysql连接数过多导致的

    打开msyql的配置文件my.ini找到max_connections参数

    将他的值改为1000,保存后重启mysql即可

    如问题依旧,则需要进入mysql然后运行

    show global variables like 'wait_timeout'; 

    (查看mysql的非交互连接的等待时间是多少,
    这个数值指的是mysql在关闭一个非交互的连接之前要等待的秒数,默认是28800s)
    然后运行
    set global wait_timeout=5; 
    (修改这个数值,这里可以随意,最好控制在几分钟内 )

    set global interactive_timeout=50; 
    (修改这个数值,表示mysql在关闭一个连接之前要等待的秒数,至此可以让mysql自动关闭那些没用的连接,但要注意的是,正在使用的连接到了时间也会被关闭,因此这个时间值要合适)

    就可以了,当sleep状态的连接数达到1000后不再增加,维持在1000个

    切记重启服务器!重启服务器!重启服务器!

    注意:

    show processlist; 
    这个mysql命令可以查看连接数,可以发现有很多连接处于sleep状态,这些其实是暂时没有用的,所以可以kill掉,例如

    kill 1180421; 


    运行show processlist; 可以得到所以连接到这个服务器上的MySQL连接:

    mysql> show processlist; 
    +---------+------+---------------------+---------+---------+------+-------+-------------------+ 
    | Id        | User | Host                   | db  | Command | Time | State | Info  | 
    +---------+------+---------------------+---------+---------+------+-------+-------------------+ 
    | 1180421 | ur   | 202.103.96.68:49754 | test1   | Sleep   |    1 |       | NULL              | 
    | 1180427 | ur   | 202.103.96.68:55079 | test2   | Sleep   |    1 |       | NULL              | 
    | 1180429 | ur   | 202.103.96.68:55187 | testdba | Sleep   |    0 |       | NULL              | 
    | 1180431 | ur   | 202.103.96.68:55704 | testdba | Sleep   |    0 |       | NULL              | 
    | 1180437 | ur   | 202.103.96.68:32825 | test1   | Sleep   |    1 |       | NULL              | 
    | 1180469 | ur   | 202.103.96.68:58073 | testdba | Sleep   |    0 |       | NULL              | 
    | 1180472 | ur   | 83.136.93.131:47613 | test2   | Sleep   |    8 |       | NULL              | 
    | 1180475 | root | localhost           | NULL    | Query   |    0 | NULL  | show  PROCESSLIST |
     +---------+------+---------------------+---------+---------+------+-------+-------------------+ 
    8 rows in set (0.00 sec) 
    mysql>

    然后,你可以看到像上面这样的MySQL数据连接列表,而且每一个都会有一个进程ID号(在上表的第一列)。我们只要输入这样的命令:

    mysql> kill 1180421
    Query OK, 0 rows affected (0.00 sec) 
    mysql>

    其中1180421为你在进程列表里找到并且要杀掉的进程号。



    【刷新页面】【加入收藏】【打印此文】 【关闭窗口】
    上一篇:夸客金融高管被缉归案 "抢钱通"实控人涉嫌非法吸存 下一篇:央行科技司司长李伟:金融科技赋能支付提质增效
     

      友情链接
    腾讯企业QQ招商银行金山360工商银行支付宝财付通
    东营招聘网绿色软件下载软件盒子天空下载西西软件园太平洋电脑网天极下载多多软件站好特下载
    飞翔下载泡泡网下载ECSHOP非凡软件站ZOL分流下硅谷动力豆豆网it168下华军软件园
    广告服务 | 联系我们 | 关于我们 | 版权声明 | 友情链接
    Copyright 2009 - 2010 Powered By Zhirui Ver 3.6.5 鲁ICP备13019314号-1
    邮件:800093106@b.qq.com 电话:4006966014  地址:山东省东营市东营区西二路471号北海嘉园C座305号  法律顾问:山东众成仁和律师事务所