mysql怎么释放连接 mysql释放连接数
如何断开MYSQL数据库连接
两种常见的断开方式:
创新互联建站是一家专业提供馆陶企业网站建设,专注与网站设计制作、成都做网站、H5响应式网站、小程序制作等业务。10年已为馆陶众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
1 根据数据库连接字符串设置链接生命周期 会自行断开
2 拿,net环境举例 MySQL.Data.MySqlClient类库下的 MySqlConnection类 下面有个方法 叫 .Close() 即可断开连接;
访问MySqlConnection类下的 Statu (只读的)字段 可以获得当前连接状态
提示 断开后的连接 可以随时 根据需要打开
mysql连接池,池中的数据库连接如何释放
做到事务去释放!目前我们处理这1.5亿条数据就是这样做的,但是查询速度太慢啊!
怎样解决mysql连接过多的错误?
1、mysql数据库系统允许的最大可连接数max_connections。这个参数是可以设置的。如果不设置,默认是100。最大是16384。
2、数据库当前的连接线程数threads_connected。这是动态变化的。
查看max_connections、max_connections的办法见后。
如果
threads_connected
==
max_connections
时,数据库系统就不能提供更多的连接数了,这时,如果程序还想新建连接线程,数据库系统就会拒绝,如果程序没做太多的错误处理,就会出现类似强坛的报错信息。
因为创建和销毁数据库的连接,都会消耗系统的资源。而且为了避免在同一时间同时打开过多的连接线程,现在编程一般都使用所谓数据库连接池技术。
但数据库连接池技术,并不能避免程序错误导致连接资源消耗殆尽。
这种情况通常发生在程序未能及时释放数据库连接资源或其他原因造成数据库连接资源不能释放,但强坛系统估计不会发生这种低级的编程错误。
该错误的简便的检查办法是,在刷新强坛页面时,不断监视threads_connected的变化。如果max_connections足够大,而
threads_connected值不断增加以至达到max_connections,那么,就应该检查程序了。当然,如果采用数据库连接池技术,
threads_connected增长到数据库连接池的最大连接线程数时,就不再增长了。
从强坛出错的情况看,更大的可能性是数据库系统没能进行适当地配置。下面提出一点建议。供参考
让你们的工程师把mysql的最大允许连接数从默认的100调成32000。这就不会老出现连接过多的问题了。
查看max_connections
进入mysql,用命令:
show
variables
查看数据库最大可连接数的变量值:
max_connections
查看threads_connected
进入mysql,用命令:
show
status
查看当前活动的连接线程变量值:
threads_connected
设置max_connections
设置办法是在my.cnf文件中,添加下面的最后红色的一行:
[mysqld]
port=3306
#socket=mysql
skip-l
java的mysqlhelper类如何释放连接池
public ResultSet SQL_ExecuteQuery(String sql,Object [] p){
Connection con=openConnection();//打开数据库
PreparedStatement pst=null;//定义一个 执行对象
try {
pst=con.prepareStatement(sql);//初始化执行对象
//循环设置参数
if(p!=null p.length0){
for (int i = 0; i p.length; i++) {
pst.setObject((i+1), p[i]);//设置参数
}
}
//最后执行命令 并返回结果
return pst.executeQuery();//执行命令
} catch (SQLException e) {
e.printStackTrace();
}finally{
try{pst.close();}catch(SQLException ex){}
try{con.close();}catch(SQLException ex){}
}
return null;
}
百度搞得乱乱的,,,,,
spring连接mysql怎么释放连接
spring有三种方法与数据库通讯不是?一般使用jdbctemplate。这个类下面有关闭链接的方法,还有一种方法是继承什么接口。。。不过现在最好的是使用hibernate或者mybite做持久层
MySQL如何杀掉无用连接?
错误“Too many connections”。平常碰到这个问题,我基本上是修改/etc/my.cnf的max_connections参数,然后重启数据库。但
是生产服务器上数据库又不能随便重启。
没办法,只好想办法手动去释放一些没用的连接。
登陆到MySQL的提示符下,数据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为你在进程列表里找到并且要杀掉的进程号。
产生这种问题的原因是:
连接数超过了 MySQL 设置的值,与 max_connections 和 wait_timeout 都有关系。wait_timeout 的值越大,连接的空闲等待就越长,这样就会造成当前连接数越大。
解决方法:
修改MySQL配置文件/etc/my.cnf,设置成max_connections=1000,wait_timeout=5。如果没有此项设置可以自行添加,修改后重启MySQL服务即可。要不经常性报此错误,则要对服务器作整体性能优化
注:
为了防止发生too many connections时候无法登录的问题,mysql manual有如下的说明:
mysqld actually allows max_connections+1 clients to connect. The extra connection is reserved for use by accounts that have the SUPER privilege. By granting the SUPER privilege to administrators and not to normal users (who should not need it), an administrator can connect to the server and use SHOW PROCESSLIST to diagnose problems even if the maximum number of unprivileged clients are connected.
因此, 必须只赋予root用户的SUPER权限,同时所有数据库连接的帐户不能赋予SUPER权限。前面说到的报错后无法登录就是由于我们的应用程序直接配置的root用户
总结,解决问题的最终方法:
1.修改配置文件/etc/my.cnf,调整连接参数
2.检查程序代码,对于没有关闭的链接及时进行关闭
名称栏目:mysql怎么释放连接 mysql释放连接数
当前链接:http://azwzsj.com/article/hiodje.html