我目前正在用java编写一个程序,我经常用MySQL驱动程序从MySQL数据库中获取数据。 起初我每次运行程序来测试它时都试图关闭连接,但是在那一行发出错误。我离开了' connection.close()'排除它并且它起作用,当时对我来说足够好。
不幸的是,这种情况适得其反,因为现在我不能再运行程序了。它给出以下错误。
Data source rejected estabilishment of connection, message from server: "Too many connections"
老实说,我不知道如何解决这个问题。 Visual Studio中的另一个相关应用程序每次运行时都会重建数据库,所以我不认为这是一个问题。我在我的java编辑器Netbeans中删除了数据库,并重新导入了它,但是它也没有解决它。我的谷歌搜索技能也让我失望了,即使是关于stackoverflow的问题似乎也没有用。
非常感谢任何帮助
答案 0 :(得分:2)
您可以使用连接池
在数据库的内存中维护数据库连接的缓存,以便在数据库接收将来的数据请求时可以重用连接。
连接池用于增强在数据库上执行命令的性能
请参阅:http://en.wikipedia.org/wiki/Connection_pool
答案 1 :(得分:1)
由于您的程序从未关闭过连接,因此它们保持打开状态并且耗尽了MySQL服务器的连接限制。即使重置数据库也不一定会弹出或终止与MySQL服务的连接,因为连接是连接到服务器而不是数据库文件。我将重新启动MySQL服务器,它将弹出并关闭所有当前连接,如user2864740所示。
为了解决每次尝试关闭连接时程序抛出错误的问题,比如Matt K说,你需要发布你得到的错误。您当然需要关闭程序中的连接。