java - 数据源拒绝建立连接,来自服务器的消息 : “Too many connections” ? - 多线程

标签 java mysql multithreading

我有一个问题,我的应用程序随时运行几乎 300-400 个线程。因此,我在连接 mysql 数据库时遇到一些问题,它随时抛出异常“数据源拒绝建立连接,来自服务器的消息:“连接太多”?”。
我检查并确保以正确的方式关闭了与数据库连接的所有连接。
为了处理这种方法,我编写了一个方法,但我不确定这是否是正确的方法。所有线程都使用此方法来获取数据库连接。 我应该更改方法还是应该添加同步,我不知道如何处理此异常

    public static Connection getDatabaseConnection(){
    try{
        return  (Connection)DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306xxx?useUnicode=true"
                + "&characterEncoding=utf-8", "root", "xxx");
    }catch(SQLException ex){
        Util.sleep(new Random().nextInt(1000));// Equals = Thread.sleep(...);
        return getDatabaseConnection();
    }

}

最佳答案

您正在为每个线程创建一个数据库连接。处理此问题的更好方法是创建连接池或单例类来访问数据库。我找到了一个旧页面来实现此目的:http://rdeshapriya.com/a-singleton-java-class-for-mysql-db-connection/

关于java - 数据源拒绝建立连接,来自服务器的消息 : “Too many connections” ? - 多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38034771/

相关文章:

使用正则表达式前瞻进行Java分割 - 字符后面没有字符

java - 并发 hashmap 可以处理多达 10000 个线程而不发生死锁吗?

mysql - 从表中检索时没有得到前导零

c++ - 如何使用同步()?

python - 为什么我的 Ubuntu 在启动 python 脚本后卡住?

java - 使用单独的 DRL 文件开始流口水

java - 检索两个文件之间的差异 - Perforce Java API

mysql - 从每月更新每日表中的一条记录

mysql - 尝试使用 mysql 更新不同表中的列

Java应用线程创建