• Data source rejected establishment of connection, message from server: "Too many connections"


    错误原因:

        太多的连接数,登录用户过多,配置的mysql连接数过小,或者某些连接没有关闭,导致连接数过大。

    问题的解决:

        修改mysql的my.ini配置文件,网上的说法:mysql安装目录下的my.ini中设定的并发连接数太少或者系统繁忙导致连接数被占满。

        而项目实际上部署在linux系统上,需要找到my.cnf的配置文件,一般在etc/my.cnf,找到这个文件,添加如下行:

        set-variable=max_connections=1000
        set-variable=max_user_connections=500

        set-variable=wait_timeout=200

    之后重启mysql,生效。

        net stop mysql

        net start mysql

        max_connections: 为设置最大的连接数

        max_user_connections:设置每用户最大的 连接数500

        wait_timeout:表示200秒后将关闭空闲连接,但对正在工作的连接不受影响。

        //重新启动MySQL后使用下面的命令查看修改是否成功

        # mysqladmin -uroot -p variables

        Password:

        //可以看到以下项说明修改成功

        | max_connections                 | 1000

        | max_user_connections            | 500

        | wait_timeout                    | 200

    解决方法二:

    还有一个可能就是代码里打开了太多的连接,但是忘记了在finally块里面关闭,从而导致在处理大数据的时候,抛出异常。下面这样的代码就不会有异常了。

    try{			
          conn=Good.getConnection();
            stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE
       				, ResultSet.CONCUR_UPDATABLE);
          String sql1="insert into cat_garbage values('"+rs.getInt("id")+"','"+rs.getInt("cid")+"','"+rs.getString("name")+"','"+rs.getString("keyword")+"')";
        stmt.executeUpdate(sql1);
        }
        catch(SQLException|ClassNotFoundException|IOException e)
        {
          e.printStackTrace();
        }
        finally
        {
          if(stmt!= null) 
            stmt.close(); 		
          if(conn!= null) 
            conn.close(); 
        }
    要随时记住关闭rs,stmt,conn等资源,学会使用finally,在finally中,这些语句一定会执行
  • 相关阅读:
    01MySQL内核分析-The Skeleton of the Server Code
    debug PostgreSQL 9.6.18 using Eclipse IDE on CentOS7
    开启PG的归档模式
    11G 新特性之 密码延迟认证
    Oracle细粒度审计
    MySQL数据库回表与索引
    zabbix_api的调用(curl测试)和SQL一些解答
    【强化学习】Markov Decision processes【二】
    【强化学习】强化学习的一些基础理念【一】
    Mysql 索引优化分析
  • 原文地址:https://www.cnblogs.com/feifeicui/p/8567468.html
Copyright © 2020-2023  润新知