位置: IT常识 - 正文

mysql查看最大连接数和修改mysql数据库最大连接数方法(MySQL查看最大连接数)

编辑:rootadmin

推荐整理分享mysql查看最大连接数和修改mysql数据库最大连接数方法(MySQL查看最大连接数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql怎么查询最大值,mysql查最大连接数命令,mysql查询最大值对应的字段,mysql查看最大连接数多少,MySQL查看最大连接数,mysql怎么查询最大值,mysql查看最大连接时间,mysql查看最大连接数多少,内容如对您有帮助,希望把文章链接给更多的朋友!

文章介绍

怎么查看 MySQL最大连接数

使用 MySQL 数据库的站点,当访问连接数过多时,就会出现 "Too many connections" 的错误。出现这种错误有两种情况,一种是网站访问量实在太大,服务器已经负担不起,此时就应该考虑负载均衡或者其它减少服务器压力的办法。另一种情况就是 MySQL 的最大连接数设置得太小,当访问量稍大就出现连接过多的错误。win7下配置PHP+Apache+Mysql运行环境

MySQL 默认的最大连接数为 100,可以在 mysql 客户端使用以下命令查看

mysql> show variables like 'max_connections';

此命令将得到类似以下的输出结果:

+-----------------+-------+| Variable_name | Value |+-----------------+-------+| max_connections | 2000 |+-----------------+-------+1 row in set (0.00 sec)

  要对 mysql 的最大连接数进行修改,只需要在 my.cnf 配置文件里面修改 max_connections 的值,然后重启 mysql 就行。如果 my.ini 文件中没有找到 max_connections 条目,可自行添加以下条目

max_connections = 200

修改MySQL最大连接数01方法一: 0202 0303 进入MySQL安装目录 打开MySQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MySQL即可 0404 0505 方法二: 0606 0707 MySQL最大连接数默认是100客户端登录: 0808 0909 MySQL -uusername -ppassword 1010 1111 设置新的MySQL最大连接数为200: 1212 1313 MySQL> set GLOBAL max_connections=200 1414 1515 显示当前运行的Query: 1616 1717 MySQL> show processlist 1818 1919 显示当前状态: 2020 2121 MySQL> show status 2222 2323 退出客户端:MySQL> exit 2424 2525 查看当前MySQL最大连接数:MySQLadmin -uusername -ppassword variables 2626 2727 方法三: 2828 2929 以centos 4.4 下面的MySQL 5.0.33 手工编译版本为例说明: 3030 3131 vi /usr/local/MySQL/bin/MySQLd_safe 3232 3333 找到safe_MySQLd编辑它,找到MySQLd启动的那两行,在后面加上参数 : 3434 3535 -O max_connections=1500 3636 3737 具体一点就是下面的位置: 3838 3939 用红字特别说明: 4040 4141 then $NOHUP_NICENESS $ledir/$MySQLD 4242 $defaults --basedir=$MY_BASEDIR_VERSION 4343 --datadir=$DATADIR $USER_OPTION 4444 --pid-file=$pid_file 4545 --skip-external-locking 4646 -O max_connections=1500 4747 >> $err_log 2>&1 else 4848 eval "$NOHUP_NICENESS $ledir/$MySQLD 4949 $defaults --basedir=$MY_BASEDIR_VERSION 5050 --datadir=$DATADIR $USER_OPTION 5151 --pid-file=$pid_file 5252 --skip-external-locking $args 5353 -O max_connections=1500 >> 5454 $err_log 2>&1" 5555 5656 保存。 5757 5858 # service MySQLd restart 5959 # /usr/local/MySQL/bin/MySQLadmin -uroot -p variables 6060 6161 输入root数据库账号的密码后可看到 6262 6363 max_connections 1500 即新改动已经生效。 6464 6565 还有一种方法, 6666 6767 修改原代码: 6868 6969 解开MySQL的原代码,进入里面的sql目录修改MySQLd.cc找到下面一行: 7070 7171 {"max_connections", OPT_MAX_CONNECTIONS, 7272 "The number of simultaneous clients allowed.", (gptr*) &max_connections, 7373 (gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1, 7474 0}, 7575 7676 把它改为: 7777 7878 {"max_connections", OPT_MAX_CONNECTIONS, 7979 "The number of simultaneous clients allowed.", (gptr*) &max_connections, 8080 (gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 1500, 1, 16384, 0, 1, 8181 0}, 8282 8383 存盘退出,然后./configure ;make;make install可以获得同样的效果。以上的相关内容就是对修改MySQL最大连接数的3种方法的介绍,望你能有所收获。MySQL服务器最大连接数相关知识

最近网站出现 User 数据库名称 has already more than 'max_user_connections' active connections 的报错,网站瘫痪。有必要研究下这个问题。

max_user_connections 是 MySQL 用户连接数的最大值设置,整段语句的意思是:服务器的 MySQL 的最大连接数参数设置不足。解决方法:修改 MySQL 安装目录下 my.ini 或者 my.cnf 文件内的 max_user_connections 参数的数值,重启 MySQL 服务器。

但是正常来说,MySQL默认的100个连接数是足够的。我们需要从程序上去考虑。MySQL的默认最大连接数为100(N),实际给普通用户使用只有N-1个,保留一个连接是留给超级管理员使用的,防止连接占满了不会把管理员也踢出来。很多网站在运行的时候都会出现连接数受限现象,我认为十之八九并非是网站的真实访问量太大导致连接数超标,更多是因为我们在设计网站程序的时候采用了不合理的设计架构或数据结构引起的。非正常连接超限可能原因如下(天缘即时归纳未必完整或无错讹仅供参考):

类似人数、在线时间、浏览数等统计功能与主程序数据库同属一个数据空间时就很容易出现。

复杂的动态页尤其是用户每次浏览都涉及到多数据库或多表操作时候也很容易出现。

还有就是程序设计的不合理(比如复杂运算、等待等操作放置在数据库交互行为中间进行),或者程序存在释放BUG。

计算机硬件配置太低却安装太高版、太高配置的MySQL。

未采用缓存技术。mysql查看最大连接数和修改mysql数据库最大连接数方法(MySQL查看最大连接数)

数据库未经过优化或表格设计及其复杂。

等等一些原因,都会延长数据库的数据交互时间或增加交互次数。所以,如果大家遇到这类问题,首先要考虑程序是否存在BUG导致连接释放失败,再次就是考虑优化软硬件。当然修改MySQL连接数也是软件优化的操作方法之一,希望大家都能够本着学习的态度通过研究一下自身的原因从而解决这一问题。如果实在是找不到原因,那就只好先修改连接数,暂缓定位真实原因了。

关于PHP的数据库持久连接 mysql_pconnect

PHP程序员应该都知道连接MySQL数据库可以使用mysql_pconnect(永久连接)函数,使用数据库永久连接可以提高效率,但是实际应用中数据库永久连接往往会导致出现一些问题,通常的表现就是在大访问量的网站上时常发生断断续续的无法连接数据库的情况,出现类似"Too many connections in ..."的错误提示信息,重新启动服务器又正常了,但过不了一会儿又出现同样的故障。对于这些问题的成因,恐怕就不是每个人都能说清楚的了,虽然PHP文档里有一些相关资料,但是解释的并不浅显易懂,这里我厚着脸皮试图做一个简单的讨论,所述观点不见得全都正确,欢迎大家反馈意见。

首先看看数据库永久连接的定义:永久的数据库连接是指在脚本结束运行时不关闭的连接。当收到一个永久连接的请求时。PHP 将检查是否已经存在一个(前面已经开启的)相同的永久连接。如果存在,将直接使用这个连接;如果不存在,则建立一个新的连接。所谓"相同"的连接是指用相同的用户名和密码到相同主机的连接。

PHP使用永久连接方式操作MySQL是有前提的:就是PHP必须安装为多线程或多进程Web服务器的插件或模块。最常见的形式是把PHP用作多进程Apache服务器的一个模块。对于一个多进程的服务器,其典型特征是有一个父进程和一组子进程协调运行,其中实际生成Web页面的是子进程。每当客户端向父进程提出请求时,该请求会被传递给还没有被其它的客户端请求占用的子进程。这也就是说当相同的客户端第二次向服务端提出请求时,它将有可能被一个不同的子进程来处理。在开启了一个永久连接后,所有不同子进程请求SQL服务的后继页面都能够重新使用这个已经建立的 SQL服务器连接。它使得每个子进程在其生命周期中只做一次连接操作,而非每次在处理一个页面时都要向 SQL 服务器提出连接请求。每个子进程将对服务器建立各自独立的永久连接。PHP本身并没有数据库连接池的概念,但是Apache有进程池的概念, 一个Apache子进程结束后会被放回进程池, 这也就使得用mysql_pconnect打开的的那个mysql连接资源可以不被释放,而是依附在相应的Apache子进程上保存到了进程池中。于是在下一个连接请求时它就可以被复用。一切看起来似乎都很正常,但是在Apache并发访问量大的时候,如果使用mysql_pconnect,会由于之前的Apache子进程占用的MySQL连接没有close, 很快使MySQL达到最大连接数,使得之后的请求可能得不到响应。

上面的部分文字是摘抄自PHP文档,看起来可能还是有些文绉绉的不好理解,那么我就用大白话再举一个例子来说明问题:

假设Apache配置最大连接数为1000,MySQL配置最大连接数为100,当Apache服务器接到200个并发访问的时候,其中100个涉及到数据库访问,剩下的100个不涉及数据库访问,因为这个时候还不存在可用的数据库连接,所以这里面涉及到数据库访问的100个并发会同时产生100个数据库永久连接,达到了数据库最大连接数,当这些操作没有结束的时候,任何其他的连接都无法再获得数据库连接,当这些操作结束了,相应的连接会被放入进程池,此时Apache的进程池里就有了200个空闲的子进程,其中100个是带有数据库连接的,由于Apache会为访问请求随机的挑选空闲子进程,所以你得到的子进程很可能是不包含数据库连接的那100个中的一个,而数据库连接已经达到了最大值,你也不可能成功的建立新的数据库连接,唉,你便只好不停的刷新页面,哪个时候运气好,碰巧分配到了带有数据库连接的子进程,才能正常浏览页面。如果是大访问量的网站来说,任何时候都可能存在大量的并发,所以浏览者可能就会不停的发现无法连接数据库的现象了。

或许你会说,我们把Apache和MySQL的最大连接数调成一样大不就可以了么?是的,合理的调整这个最大连接数某种程度上会避免这个问题的发生,但是Apache和MySQL的负载能力是不同的,如果按照Apache的负载能力来设置,对于MySQL来说,这个最大连接数就偏大,会产生大量的MySQL数据库永久连接,打个比方,就好像和平时代还要养活一个几百万的军队一样,其开销得不偿失;而如果按照Mysql的负载能力设置,对于Apache来说,这个最大连接数就偏小,有点杀鸡牛刀的感觉,无法发挥Apache的最大效率。

所以按照PHP手册上的介绍,只适合在并发访问不大的网站上使用数据库永久连接,但对于一个并发访问不大的网站来说,使用数据库永久连接带来的效率提高似乎没有太大的意义,从这个角度上来看,我觉得PHP中的数据库永久连接基本上是一个鸡肋的角色,如果你一定要使用数据库连接池的概念,可以尝试一下sqlrelay或者Apache本身提供的mod_dbd,说不定会有惊喜。

关于mysql_free_result和mysql_close

之前用mysql的时候一直是在用短链接,调用mysql_store_result获取一次数据之后就直接调用:

1mysql_free_result(m_result);2mysql_close(m_Database);

但是有两个问题:

当使用长连接时(即connect之后一直不close),如果最后会调用mysql_close,需不需要每次都调用mysql_free_result呢?

当mysql_close调用之后,m_result的数据是否还可以用。

先说一下结论:

必须每次调用。因为经过测试,每次mysql_store_result的指针都是不同的,可见并不是共享了同一块buf。

还是可以使用。经过valgrind扫描,只调用mysql_close的扫描结果是:1==9397== 16,468 (88 direct, 16,380 indirect) bytes in 1 blocks are definitely lost in loss record 4 of 52==9397== at 0x40219B3: malloc (vg_replace_malloc.c:195)3==9397== by 0x8053EA2: my_malloc (in /data/home/dantezhu/appbase/application/platform/openqqcom/share/db_openright/test/test)4==9397== by 0x806D314: mysql_store_result (in /data/home/dantezhu/appbase/application/platform/openqqcom/share/db_openright/test/test)5==9397== by 0x804BB04: CMySQLCppClient::Result(st_mysql_res*&) (mysql_cpp_client.cpp:127)6==9397== by 0x804AB58: CDBOpenRight::GetUinsByApp(unsigned int, std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> >&) (db_openright.cpp:58)7==9397== by 0x8049F10: main (test.cpp:27)

免责

本文链接地址:https://www.jiuchutong.com/zhishi/310831.html 转载请保留说明!

上一篇:Python中os模块的功能介绍(python os.path模块)

下一篇:java阻塞队列的两种操作(java阻塞队列线程安全吗)

  • vivox70拍月亮怎么拍(vivos7手机拍月亮)

    vivox70拍月亮怎么拍(vivos7手机拍月亮)

  • 魅族18spro有超声波指纹吗(魅族18有超声波指纹吗)

    魅族18spro有超声波指纹吗(魅族18有超声波指纹吗)

  • 苹果xr无线充电功能在哪(苹果XR无线充电怎么没反应)

    苹果xr无线充电功能在哪(苹果XR无线充电怎么没反应)

  • surface连接wifi上不了网(surface连接无线网络)

    surface连接wifi上不了网(surface连接无线网络)

  • oppor9手机有nfc功能吗(oppor9nfc功能在哪里打开)

    oppor9手机有nfc功能吗(oppor9nfc功能在哪里打开)

  • 交通摄像头能拍多远(交通摄像头能拍到车里情况吗)

    交通摄像头能拍多远(交通摄像头能拍到车里情况吗)

  • soul什么时候上线的(soul什么时候上线的和soul差不多的软件)

    soul什么时候上线的(soul什么时候上线的和soul差不多的软件)

  • 苹果8静音模式怎么取消(苹果8静音模式在哪里设置)

    苹果8静音模式怎么取消(苹果8静音模式在哪里设置)

  • 锁屏字体颜色怎么改变(锁屏字体颜色怎么设置成白色呢)

    锁屏字体颜色怎么改变(锁屏字体颜色怎么设置成白色呢)

  • 微商相册如何下单购买(微商相册如何下载图片)

    微商相册如何下单购买(微商相册如何下载图片)

  • 腾讯会议可以手机电脑一起用吗(腾讯会议可以手机和平板一块上吗)

    腾讯会议可以手机电脑一起用吗(腾讯会议可以手机和平板一块上吗)

  • 抖音里的回关和相互关注的区别(抖音里的回关和点赞区别)

    抖音里的回关和相互关注的区别(抖音里的回关和点赞区别)

  • 直播平台说的流量是什么意思(直播平台赚流量有什么用)

    直播平台说的流量是什么意思(直播平台赚流量有什么用)

  • 钉钉作业重新提交后别人能看到吗(钉钉作业重新提交后老师会按什么顺序改作业)

    钉钉作业重新提交后别人能看到吗(钉钉作业重新提交后老师会按什么顺序改作业)

  • ipv6地址是由什么位二进制数组成(ipv6地址由什么组成)

    ipv6地址是由什么位二进制数组成(ipv6地址由什么组成)

  • u盘里显示文件损坏怎么办(u盘里显示文件被占用,无法发送是什么原因)

    u盘里显示文件损坏怎么办(u盘里显示文件被占用,无法发送是什么原因)

  • 息屏提醒是什么

    息屏提醒是什么

  • 如果微信号封了里面的钱怎么办(如果微信号封了,手机号可以再申请吗?)

    如果微信号封了里面的钱怎么办(如果微信号封了,手机号可以再申请吗?)

  • word文档怎样整页删除(word文档怎样整体缩小版面打印)

    word文档怎样整页删除(word文档怎样整体缩小版面打印)

  • 手机支付宝怎么开通商家服务(手机支付宝怎么设置密码锁)

    手机支付宝怎么开通商家服务(手机支付宝怎么设置密码锁)

  • 华为p30pro可以投影吗(华为p30por怎么投影)

    华为p30pro可以投影吗(华为p30por怎么投影)

  • 苹果手机5怎么录屏照片(苹果手机5怎么下载软件)

    苹果手机5怎么录屏照片(苹果手机5怎么下载软件)

  • ios迅雷下载的电影在哪(ios迅雷下载的电影)

    ios迅雷下载的电影在哪(ios迅雷下载的电影)

  • 苹果x能当遥控器吗(苹果x能当遥控器)

    苹果x能当遥控器吗(苹果x能当遥控器)

  • 监控如何更换画面顺序(监控如何更换画面模式)

    监控如何更换画面顺序(监控如何更换画面模式)

  • 自来水适用高税率吗
  • 差额征税专用发票如何开
  • 购买税控盘全额退税
  • 纳税人如何申请享受税收减免优惠
  • 提入转账支票会计分录
  • 无形资产 减值
  • 其他应收款里面有增值税
  • 分公司可以合伙吗
  • 购买的专利可以进费用吗
  • 发票联丢失用抵扣联做账可以吗
  • 公允价值变动损益是什么意思
  • 餐饮装修费用计入什么科目
  • 公司注销后原有债权
  • 进行财产清查
  • 房屋的折旧年限一般是多少年
  • 残保金申报有什么用
  • 去年的发票今年能红字冲销吗
  • 客户用商品抵应收账怎么做
  • 公司卖二手车的流程
  • session php用法
  • php api
  • 向灾区捐赠货物需要交增值税吗
  • 金融企业存出保函的条件
  • 应付账款会计分离
  • php__call
  • ecshop app搭建
  • 免费GPU:九天•毕昇平台使用教程
  • 什么是动态表单
  • 前端工程搭建
  • 已缴款未入库是扣款成功了吗
  • yolov5s
  • unity常用脚本语言
  • javaweb会话跟踪技术有哪些
  • rf-kill
  • 高德地图的2种导航方式
  • 选择相邻兄弟需要使用下列哪个符号
  • 农民专业合作社属于什么企业类型
  • 用工会经费给员工发工资
  • 非限定性收入属于什么科目?
  • 其他应收款借贷方表示什么意思
  • python之sqlalchemy创建表的实例详解
  • mysql从一张表更新到另一张表
  • 运输发票怎么做账
  • 原材料盘亏属于自然损耗
  • 申请高新技术企业要具备哪些条件
  • mysql5.5创建用户
  • 营业净利率和总资产周转率正相关
  • 预售期的房子是否可以买卖
  • 个体工商户实收资本可以填0吗
  • 建筑公司工程外包 税务
  • 财务费用利息收入的账务处理
  • 应收账款贷方余额应与什么科目合并后填入报表
  • 交去年的企业所得税吗
  • 预收账款账务处理分录
  • 个人承担的个税会计分录
  • 银行对账单上借贷方什么意思
  • 营业执照可以变更名字和经营范围吗
  • sql 随机
  • MySQL中interactive_timeout和wait_timeout的区别
  • mysql5.5解压版安装教程
  • freebsd做服务器
  • wmpdmc.exe是什么意思
  • windows8音频服务尚未启用 怎么解决
  • cocos2dx 3.1.1 win8+eclipse环境下android游戏开发环境搭建
  • 适者生存作文800字议论文
  • javascript基于什么的语言
  • dos命令可以做什么
  • vue.js作用
  • javascript resources
  • 设置拉我进群必须经过我同意
  • unity手柄圆盘
  • 怎么优化项目
  • android音频播放器
  • Python使用QQ邮箱发送Email的方法实例
  • jquery中给指定元素添加样式
  • 隐藏应用名字
  • 大学生活最后的日子
  • js math.js
  • 浅谈如何实现乡村振兴论文
  • 国税局和地税局分别征收什么税种
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设