2 lqy893022 lqy893022 于 2016.09.25 13:47 提问

jsoup抓取网页数据,连接数据库之后,运行了一段时间报错如下: 50C

com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections"
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:921)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1070)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2748)
at com.mysql.jdbc.Connection.(Connection.java:1553)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
也尝试修改了my.ini文件中的max_connections参数,还是不行,求高手指点!

6个回答

qy20115549
qy20115549   2016.09.25 14:31

你是要写操作数据库语句吗,建议用queryrunner。。想看网络爬虫方面的框架,json数据解析,httpclient的使用,网络爬虫将抓去的数据放到数据库,去看我的博客,我写了一系列的java网络爬虫。。。

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.09.25 14:54

异常显示你的数据库连接太多,检查下你的代码是不是存在使用完成连接但是没有及时释放连接的情况呢。

qq_22522245
qq_22522245   2016.09.25 16:36

想看网络爬虫方面的框架,json数据解析,httpclient的使用,网络爬虫将抓去的数据放到数据库。

qq_15617533
qq_15617533   2016.09.26 01:01
 因为你的mysql安装目录下的my.ini中设定的并发连接数太少或者系统繁忙导致连接数被占满
解决方式:针对并发连接数太少,打开MYSQL安装目录my.ini找到max_connections大约93行,把默认值修改为500-1000,重启mysql,如果依然报错则可能是存在大量的沉睡线程mysql所支撑的最大连接数有限如果沉睡线程过多那么将无法创建新的mysql连接,从而爆"Too many connections错误",可以使用show processlist查看mysql状态,如果发现大量的sleep进程那么回到my.ini文件下限制进程的沉睡时间如设置wait-timeout=10线程最多沉睡10s即关闭,此外程序中数据库操作完成之后不要忘记关闭连接是一个好习惯
u011606457
u011606457   2016.09.26 08:42

可能是数据库连接资源泄漏了,检查代码是否有关闭或者释放资源(建议用连接池)。

爬虫的并发量太高了,建议控制并发数,用线程池

quasimodo_es
quasimodo_es   2016.09.26 12:55

应该是应用中数据库连接池的链接没有释放造成的;
jsoup是网页爬取工具,和数据库连接池没关系的,这个是你爬取目标网站给出的错误吗?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Jsoup简介——使用Java抓取网页数据
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 jsoup的主要功能如下: 1. 从一个URL,文件或字符串中解析HTML; 2. 使用DOM或CSS选择器来查找、取出数据; 3. 可操作HTML元素、属性、文本;
Java抓取网页乱码解决
昨天用java抓取html文件,获取下来的html文件打开总是带有乱码,弄了半天搞定了。其实要避免乱码的一个好方法:没有必要去判断页面的编码方式,只要读取的数据按字节(而不是按字符)保存起来就可以了,后缀为html文件,然后用浏览器打开,肯定是正常的。   分析的原因:在网络上传送的数据是基于字节流的,我们要在屏幕上显示的时候要将字节流按某种字符集解码成String的形式,在java中
Jsoup实现网络爬虫抓取数据
Jsoup实现网络爬虫抓取数据
使用java jsoup抓取页面中的数据
介绍 使用jsoup来进行解析。 jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 jsoup提供的中文文档 业务需求 抓取页面中的答案。如图: demo展示 //方法入口 public static void main(Strin
用Jsoup包抓取网页数据
import java.io.File; import java.util.ArrayList; import java.util.List; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Eleme
Jsoup网页数据抓取案例
关于Jsoup的基础知识点这里就不说了,个人认为很多大牛写的很详细也比较全面,这里就简单举一个使用例子玩玩,社长也比较喜欢拿例子来理解一些知识点。 给几个有用的链接: 1、https://jsoup.org/download     jsoup下载地址 2、https://try.jsoup.org/        待会用到,主要用来测试一些选择器之类的是否选择到数据,还可以查询当前浏览器u
对接 kafka的 spark程序 程序可以正常运行 就是接受kafka的数据时很慢 ,怎么调优?
1)启动一个console consumer消费topic的数据,判断消费是否正常。 2)如果console consumer消费正常,就检查sparkstream程序。 2.1)sparkstreming 是基于时间片消费数据的。 看看时间片是否过小,最小的时间间隔,参考在0.5~2秒钟之间。可以适当放宽时间片的大小。 2.2)spark streaming虽然是按照时间片消费数据的,但是
jsoup 分页抓取网页数据Java HTML Parser
ExampleFetch the Wikipedia homepage, parse it to a DOM, and select the headlines from the In the news section into a list of Elements (online sample):Document doc = Jsoup.connect("http://en.wikipedia.
Jsoup抓取网页数据完成一个简易的Android新闻APP
Jsoup抓取网页数据完成一个简易的Android新闻APP 前言:作为一个篮球迷,每天必刷NBA新闻。用了那么多新闻APP,就想自己能不能也做个简易的新闻APP。于是便使用Jsoup抓取了虎扑NBA新闻的数据,完成了一个简易的新闻APP。虽然没什么技术含量,还是写一下过程,满足一下菜鸟小小的成就感。 关于Jsoup jsoup 是一款 Java 的 HTML 解析器
Java中用Jsoup抓取网页上的数据
Document doc;   //创建Document 对象,使我们可以对 HTML 页面中的所有元素进行访问  doc = Jsoup.connect("http://XXXXXXX").get();  //括号中填入你想要访问的网页链接 Element  xxx =doc.getElementById("XXX");   // Element 对象,主要是依靠 DOM 元素树结构访问