精华内容
下载资源
问答
  • MySQL数据库系统允许的最大可连接数max_connections。...如果 threads_connected == max_connections 时,数据库系统就不能提供更多的连接数了,这时,如果程序还想新建连接线程,数据库系统就会拒绝,前端
    MySQL数据库系统允许的最大可连接数max_connections。该参数是可以设置的。如果不设置,默认是100。最大是16384。 
    数据库当前的连接线程数threads_connected。该参数是动态变化的。 
    如果 threads_connected == max_connections 时,数据库系统就不能提供更多的连接数了,这时,如果程序还想新建连接线程,数据库系统就会拒绝,前端会话就不能建立新的连接了。


    如何修改max_connections呢?

    方法1.在会话中修改

    直接通过mysql工具在MySQL中修改最大连接数,步骤如下:

    查询当前的会话参数:
    mysql> show variables like '%max_connections%'; 
    +-----------------+-------+
    | Variable_name   | Value |
    +-----------------+-------+
    | max_connections | 1024  |
    +-----------------+-------+
    1 row in set (0.00 sec)

    执行命令进行参数修改:
    mysql> set global max_connections=10240;
    Query OK, 0 rows affected (0.00 sec)

    再次执行命令看参数是否修改过来了:
    mysql> show variables like '%max_connections%'; 
    +-----------------+-------+
    | Variable_name   | Value |
    +-----------------+-------+
    | max_connections | 10240 |
    +-----------------+-------+
    1 row in set (0.00 sec)
    至此,在会话中最大会话连接数就已经修改为10240.
    注:这种方式参数只是记录在内存中,重启MySQL数据库服务后,更改不会保留。


    方法2 在my.conf 参数中修改

    通过修改my.cnf配置,服务器重启后生效,具体步骤如下:
    # cat /etc/my.cnf | grep max_connections
    max_connections =1024

    # vim /etc/my.cnf
    将参数修改为:
    max_connections =10240
    修改后,确认参数已经修改了:
    # cat /etc/my.cnf | grep max_connections
    max_connections =10240
    然后重启MySQL服务器,使参数生效:
    # service mysqld restart
    注:这种方法需要重启数据库才可以,所以一定要注意数据库是否可以重启后,再决定是否用这个方法。

    这种参数修改的方法比较彻底,参数写入配置文件,修改会一直保留。






    展开全文
  • 此篇通过介绍监控数据库的3306端口连接数来了解如何监控其它端口和配置自定义监控项的过程。添加监控脚本在要监控的客户端上新建脚本:/usr/local/zabbix/alertscripts/check_3306_port_num.sh内容如下:#!/bin/...

    在 分布式监控系统Zabbix3.2跳坑指南 和 分布式监控系统Zabbix3.2给异常添加邮件报警 已经介绍了如何安装以及报警。此篇通过介绍监控数据库的3306端口连接数来了解如何监控其它端口和配置自定义监控项的过程。

    添加监控脚本

    在要监控的客户端上新建脚本:

    /usr/local/zabbix/alertscripts/check_3306_port_num.sh

    内容如下:

    #!/bin/bash

    ss -an|grep 3306|grep ESTAB|wc -l

    这个脚本很简单,就是获取3306端口已经建立的连接,并用“wc -l”来统计一共多少行,总之最后返回的是一个整数

    注:alertscripts目录若不存在需要自己新建 给脚本添加执行权限: #chmod a+x check_3306_port_num.sh

    配置客户端文件

    修改zabbix_agentd配置文件,添加一个“UserParameter”: #vi /usr/local/zabbix/etc/zabbix_agentd.conf 添加如下内容:

    更改 UnsafeUserParameters=1

    添加 UserParameter=3306connectNum,/usr/local/zabbix/alertscripts/check_3306_port_num.sh

    注:这里的“3306connectNum”就是item key,不能跟已有的重复,并且后面需要使用

    重启zabbix_agentd

    #systemctl restart zabbix-agent

    zabbix服务端测试获取数据

    #zabbix_get -s 192.168.80.30 -k 3306connectNum 输出如下: 587 注:上面的192.168.80.30就是指的客户端的IP,3306connectNum就是我们要测试的key,返回的587就是3306数据库端口的连接数

    zabbix的web界面中新建模板、监控项以及图形

    新建模板: 配置 –> 模板 –> 创建模板: 模版名称 :Template App MySQL (存在则选择)

    1620

    给该模板添加监控项:

    打开该模板 –> 监控项 –> 创建监控项: 名称:MySQL 3306端口连接数 键值:3306connectNum 选中信息类型为数字

    1620

    添加图形:

    打开该模板 –> 图形 –> 创建图形: 名称:Mysql 3306端口连接数 监控项:添加上刚才创建的监控项

    1620

    1620

    给主机绑定模板后:

    主机》找到监控的主机》图形》

    1620

    这里要注意的是要针对此主机需要添加Template App MySQL模板的引用。

    数分钟后查看连接数的变化:

    1620

    到此,我们使用zabbix自定义监控一个端口的连接数的配置就完成了。当然,根据我上面提到的原理,使用zabbix来监控一些其他服务也将不再是难事了

    以上内容参考了其他网上资料的,也感谢其他网友的分享。

    展开全文
  • 此篇通过介绍监控数据库的3306端口连接数来了解如何监控其它端口和配置自定义监控项的过程。 添加监控脚本 在要监控的客户端上新建脚本: /usr/local/zabbix/alertscripts/check_3306_port_num.sh 内容如下...

    在 分布式监控系统Zabbix3.2跳坑指南 和 分布式监控系统Zabbix3.2给异常添加邮件报警 已经介绍了如何安装以及报警。此篇通过介绍监控数据库的3306端口连接数来了解如何监控其它端口和配置自定义监控项的过程。

    添加监控脚本

    在要监控的客户端上新建脚本:

    /usr/local/zabbix/alertscripts/check_3306_port_num.sh

    内容如下:

    #!/bin/bash
    ss -an|grep 3306|grep ESTAB|wc -l

     这个脚本很简单,就是获取3306端口已经建立的连接,并用“wc -l”来统计一共多少行,总之最后返回的是一个整数

    注:alertscripts目录若不存在需要自己新建 给脚本添加执行权限: #chmod a+x check_3306_port_num.sh

    配置客户端文件

    修改zabbix_agentd配置文件,添加一个“UserParameter”: #vi /usr/local/zabbix/etc/zabbix_agentd.conf 添加如下内容:

    更改 UnsafeUserParameters=1
    
    添加 UserParameter=3306connectNum,/usr/local/zabbix/alertscripts/check_3306_port_num.sh

    注:这里的“3306connectNum”就是item key,不能跟已有的重复,并且后面需要使用

    重启zabbix_agentd

    #systemctl restart zabbix-agent

    zabbix服务端测试获取数据

    #zabbix_get -s 192.168.80.30 -k 3306connectNum 输出如下: 587 注:上面的192.168.80.30就是指的客户端的IP,3306connectNum就是我们要测试的key,返回的587就是3306数据库端口的连接数

    zabbix的web界面中新建模板、监控项以及图形

    新建模板: 配置 –> 模板 –> 创建模板: 模版名称 :Template App MySQL (存在则选择)

    给该模板添加监控项:

    打开该模板 –> 监控项 –> 创建监控项: 名称:MySQL 3306端口连接数 键值:3306connectNum 选中信息类型为数字

    添加图形:

    打开该模板 –> 图形 –> 创建图形: 名称:Mysql 3306端口连接数 监控项:添加上刚才创建的监控项

     给主机绑定模板后:

    主机》找到监控的主机》图形》

    这里要注意的是要针对此主机需要添加Template App MySQL模板的引用

    数分钟后查看连接数的变化:

    到此,我们使用zabbix自定义监控一个端口的连接数的配置就完成了。当然,根据我上面提到的原理,使用zabbix来监控一些其他服务也将不再是难事了

     以上内容参考了其他网上资料的,也感谢其他网友的分享。

    转载于:https://www.cnblogs.com/xzlive/p/11233138.html

    展开全文
  • 另外Max Pool Size, Min Pool Size为池允许的最大和最小连接数。连接池就是一个容器,它存放了一定数量的与数据库服务器的物理连接。因此,当我们需要连接数据库服务器的时候,只需去池(容器)中取出一条空闲的连接...

    连接字符串中,有Pooling关键字,默认情况下其值为true,即支持连接池技术。如果不想支持连接池技术,可以显式地将其赋值为false。

    另外Max Pool Size, Min Pool Size为池允许的最大和最小连接数。

    连接池就是一个容器,它存放了一定数量的与数据库服务器的物理连接。因此,当我们需要连接数据库服务器的时候,只需去池(容器)中取出一条空闲的连接,而不是新建一条连接。

    比如:对Connection调用Close或Dispose时,连接被释放回池中,而跟数据库的物理连接并没有断掉。连接池一旦创建,直到活动进程终止时才会被毁坏。 所以sqlConnection.Closle()和sqlConnection.Dispose()并不会关掉数据库的物理连接。

    连接池标识

        连接池是由进程、应用程序域、连接字符串以及windows标识(在使用集成的安全性时)共同组成签名来标识区分的。但对于同一应用程序域来说,一般只由连接字符串来标识区分。

        当打开一条连接时,如果该条连接的类型签名与现有的连接池类型不匹配,则创建一个新的连接池。反之,则不创建新的连接池。

        举例说明,如下:

    //构造连接字符串
    SqlConnectionStringBuilder connStr = new SqlConnectionStringBuilder();
    connStr.DataSource = "192.168.1.20";
    connStr.InitialCatalog = "rzerp_zjsy";
    connStr.UserID = "developer";
    connStr.Password = "developer";
    //创建连接对象1
    using (SqlConnection conn1 = new SqlConnection(connStr.ConnectionString))
    {
    	conn1.Open();
    	if (conn1.State == ConnectionState.Open)
    	{
    		Console.WriteLine("\nDatabase is linked.");
    		Console.WriteLine("\nDataSource:{0}", conn1.DataSource);
    		Console.WriteLine("\nDatabase:{0}", conn1.Database);
    	}
    }
    //创建连接对象2
    connStr.InitialCatalog = "master";
    using (SqlConnection conn2 = new SqlConnection(connStr.ConnectionString))
    {
    	conn2.Open();
    	if (conn2.State == ConnectionState.Open)
    	{
    		Console.WriteLine("\nDatabase is linked.");
    		Console.WriteLine("\nDataSource:{0}", conn2.DataSource);
    		Console.WriteLine("\nDatabase:{0}", conn2.Database);
    	}
    }
    //创建连接对象3
    connStr.InitialCatalog = "rzerp_zjsy";
    using (SqlConnection conn3 = new SqlConnection(connStr.ConnectionString))
    {
    	conn3.Open();
    	if (conn3.State == ConnectionState.Open)
    	{
    		Console.WriteLine("\nDatabase is linked.");
    		Console.WriteLine("\nDataSource:{0}", conn3.DataSource);
    		Console.WriteLine("\nDatabase:{0}", conn3.Database);
    	}
    }

    SQL Server端连接数与客户端连接池关系

    1,准备

        SQL Server 服务端的并发连接数可以设置:如下所示:
        exec sp_configure 'user option' ,0

        reconfigure

    查看数据库设置的最大连接数,run_value=0(为0默认最大值32767)


    2,客户端测试程式,其代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;
    
    namespace connPools
    {
        class Program
        {
            static void Main(string[] args)
            {
                int maxCount = 40000; 
                //构建连接字符串
                SqlConnectionStringBuilder connStr = new SqlConnectionStringBuilder();
                connStr.DataSource = "192.168.1.20";
                connStr.InitialCatalog = "rzerp_zjsy";
                connStr.UserID = "developer";
                connStr.Password = "developer";
                connStr.Pooling = true;
                connStr.MaxPoolSize = 40000;
                connStr.MinPoolSize = 1;
                connStr.ConnectTimeout = 15;
                string connstring = connStr.ConnectionString;
                List<SqlConnection> collection = new List<SqlConnection>();
                for (int i = 0; i < maxCount; i++)
                {             
                    try
                    {
                        var sqlConn = new SqlConnection(connstring);
                        sqlConn.Open();
                        collection.Add(sqlConn);    //保存连接对象  
                        Console.WriteLine(string.Format("已创建连接对象{0}", i));
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }  
            }
        }
    }

    为了验证关系,我们配置个测试用例,设置max poolsize = 100,即连接池100,数据库3000 (语法:exce SP_)



    查询客户端连接到数据库的信息:

    SELECT [program_name] ,[spid] FROM [sys].[sysprocesses] WHERE[spid]>50


    用例安排:

    测试用例一:设置max poolsize=40000,即连接池40000,数据库32767
    测试用例二:设置max poolsize=3000,即连接池3000,数据库32767

    测试用例三:设置max poolsize=40000,即连接池40000,数据库3000

    观察结果如下:


    展开全文
  • 数据库连接

    2019-01-08 16:16:35
    一、应用程序直接连接数据库缺点  用户每次请求都需要向数据库获取连接,而数据库创建连接通常需要消耗较大... 最小连接数:连接池一直保持的数据库连接的最小数目。  最大连接数:连接池所能申请的最大连接数...
  • 使用sysdba用户,通过达梦图形客户端连接到该服务器。 双击“代理”设置代理 登录密码为大写的SYSDBA 点击确定。 3:右击作业,新建作业,操作如下 4:点击左侧“作业步骤”,“新建”操作如下: 出现下面的界面...
  • ADO.NET 可以自动管理连接池,SqlConnection conn = new SqlConnection("连接信息"),AOD.NET 首先会在连接池查找是否有空闲的连接连接池将空闲对象分配给conn,如果没有则需要新建一个连接对象。conn.close() 关闭...
  • 此篇通过介绍监控数据库的3306端口连接数来了解如何监控其它端口和配置自定义监控项的过程。添加监控脚本在要监控的客户端上新建脚本:/usr/local/zabbix/alertscripts/check_3306_port_num.sh内容如下:#!/bin/...
  • ----------------------------------------//获取数据库实例对象$link = Db::connect();//用实例查询类方法$result = $link->table(‘destoon_ad‘)->select();//输出结果集dump($result);--...
  • 我将Jsp连接Mysql数据库方法整理如下,供大家学习交流! 1、首先在myslq数据库新建mldn数据库,并新建emp表。(方法不展开介绍) 插入数据如下: create table `emp` ( `empno` int (4), `ename` varchar...
  • 最近一直在学习研究swoole,发现这个框架真是PHP的神...一般的fpm PHP应用程序都是使用的数据库短连接,每个php-fpm的请求都会新建一个mysql数据库连接,那么在并发数很高的情况mysql的连接数很快就会用完,从而导致...
  • 连接数据库。 在连接终端上执行命令create database JD_Model; 执行完成后,验证数据库是否创建成功。执行命令show databases;查看是否有JD_Model数据库。 将准备好的...
  • 1、环境:myeclipse9.0tomcat6.0MySQL5.52、在myeclipse里面创建了一个web项目,然后新建了一个JSP文件,代码如下1、环境:myeclipse9.0 tomcat6.0 MySQL5.52、在myeclipse里面创建了一个web项目,然后新建了一个JSP...
  • 为了安装速度快一些,可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm,...(二)在工程下新建一个叫connect的javascript文件 文件编辑如下var mysql = require(‘mysql’); var connection = my...
  • DBCP数据库连接

    2016-09-12 14:25:00
    在用JDBC连接数据库的时候,...也就是说,连接池里面维护着一些对数据的连接对象,我们的代码需要的时候直接拿来用就可以了,这样就不必每次需要对数据库连接的时候再新建Connection对象,节省时间空间,从而提高...
  • 如果threads_connected == max_connections时,数据库系统就不能提供更多的连接数了,这时,如果程序还想新建连接线程,数据库系统就会拒绝,如果程序没做太多的错误处理,就会出现类似强坛的报错信息。
  • 数据库连接字符串

    2019-06-05 12:43:10
    最近学习库,导入数据时遇到了有关连接字符串的问题,在网上找到了一个比较好的回答 https://zhidao.baidu.com/question/1950656048340349668.html 步骤: 1、新建一个txt文本文档,然后把后缀名改为udl 2、打开 ...
  • 在上面讲了一个好处就是可以限定连接数,这样不会造成N多的数据库连接最后宕机;额外有了这样一个连接池,也可以来监听这些连接和便于管理。 配置 1.拷贝相关的jar 要知道连接池不是用来直接操作数据库的,最终进行...
  • C#连接数据库

    2015-05-16 15:47:06
    使用SqlConnection类连接SQL SEVER...2、使用SqlConnection 类连接数数据库。连接字符串如下: //声明一个字符串,用于存储连接数据库字符串 //使用SQL SEVER登录的用户名和密码 string str = "server=;datab
  • 如果要处理的数据量是十万级以上,Oracle数据库就是首选了。 Oracle数据库和之前学习的Sql Server,My Sql,不同。以My Sql为例,在实际应用中是一个Java 项目要对应一个数据库文件;Oracle中不建那么多数据库,...
  • Tomcat 7-dbcp配置数据库连接池详解原理关于连接池,大家都晓得用来限定对数据库的连接。...在上面讲了一个好处就是可以限定连接数,这样不会造成N多的数据库连接最后宕机;额外有了这样一个连接池,也...
  • Tomcat 7-dbcp配置数据库连接池详解原理关于连接池,大家都晓得用来限定对数据库的连接。...在上面讲了一个好处就是可以限定连接数,这样不会造成N多的数据库连接最后宕机;额外有了这样一个连接池,也...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 450
精华内容 180
关键字:

数据库新建连接数