问题:后台内容进行全部整体更新的时候会出现此错误 can not connect to mysql server

部分更新的时候不会出错;

判断:mysql服务器在程序连接时出现问题,请求数量过大,服务器承担不起;

解决:将配置文件中改为持久连接

注:

wmxx_cn:

phpcms/include/config.inc.php

define('DB_PCONNECT', 0); //0 或1,是否使用持久连接

=================以下为第二种解决方案=======================================================================================

Can not connect to MySQL server 的解决方案。

问题表现:

Can not connect to MySQL server

Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (4)

这个问题困扰很长一段时间了,google baidu 都找不到原因,今天沉下心来好好的思考了一翻,有点头绪。

通过 netstat -an 命令,发现在MySQL服务器上产生了大量的 WAIT_CLOSED | ESTABLISHED off 状态的链接。 是突然产生的,没有任何征兆。

因为web 服务器跑的是 fast-cgi php ,fast-cgi php 跟模块化的php不同的是,为了节省资源,fastcgi进程会管理mysql连接资源,fastcgi会与mysql产生一个持久连接,不会在一个php会话结束的时候释放mysql连接,而是将这个链接保存到“连接池”中,在下一个会话到来的时候,直接使用这个链接。

所以经过我初步判断,是连接超时引起的,我所有使用的mysqld 版本是 icc-5.1.39/40 (这两个版本都有这个问题)。尝试修改 /etc/my.cnf,

[mysqld]

wait_timeout = 96400

interactive_timeout=96400 # 这个必须要加上,否则show variables like '%timeout%' 会发现 wait_timeout 一直是 28800

# 96400 是一天的秒数+10000,因为我的mysql服务器每天会有一次冷备份,也就是会重启一次,所以设置的是这个数值。可以设置的更大一些,比如 86400000

接下来重启 mysqld。

应该可以了,观察中。

=================================

2009-12-11 接上面

很不幸,那个问题依然存在,根据朋友的提示做了以下工作:

1. yum update

2. 更新 libevent 库到最新的版本

问题依然存在!

后来查看系统日志 tail -n 1000 /var/log/message 发现有部分 can't open file 'bbs_post.MYD#' 类的字样,还有系统文件数打开数达到上限的提示,突然想到, 可能是MYSQL分区引起的文件打开数过多!

这与之前的一个方案有关系,经过测试,每个表的记录数在50w的时候,根据主键查询速度很快,达到 100w PV 的时候,会下降5-8倍,500w+ 时,根据主键查询一条需要 0.3s 左右(1U 4核 4G 普通服务器)。所以在分区的时候我分的比较小,50W一个区,结果产生了大量的分区文件。而MYSQL在运行时都是打开状态的,所以文件打开数达到了上限,通过 lsof -p 123|wc -l (123 为mysqld pid)可以知道mysqld打开文件数。做如下调整:

做了一个php脚本优化/修复了一下表:

脚本 /root/optimizer_table.php 如下:

$dbhost = '192.168.1.1';

$dbuser = 'dbuser';

$dbpw = 'dbpw';

$dbname = 'test';

system("service nginx stop");

set_time_limit(0);

$db = mysql_connect($dbhost, $dbuser, $dbpw);

mysql_select_db($dbname);

$query = mysql_query('show tables');

while($row = mysql_fetch_assoc($query)){

$tablename = $row['Tables_in_'.$dbname];

mysql_query("optimize table $tablename");

}

system("service nginx start");

?>

执行: /usr/local/php/bin/php-cgi /root/optimizer_table.php

ulimit -HSn 65536

另外有可能是PHP的EA加速造成,关闭PHP EA加速。

问题到此解决,到底是mysql分区导致打开文件过多,还是EA,我没有时间去深究,有兴趣的朋友可以试一下,记录下解决过程,供大家参考。

==============第三种解决方案==========================

这个是一个连接错误,意思就是告诉你,现在你的MYSQL服务器连接数量已经太多,无法建立新的连接了。

因为mysql默认是100个连接,你要是作为第101个用户去访问,去连接,显然就报错了。

你得修改max_connections,自己去改大一点吧。

更多参考教程《提示Can not connect to MySQL server的原因》

can not connect to mysql server翻译_Message:Can not connect to MySQL server的解决办法相关推荐

  1. mysql数据库连接过多的错误,可能的原因分析及解决办法

    mysql数据库连接过多的错误,可能的原因分析及解决办法 来源:网络采集 作者:未知 系统不能连接数据库,关键要看两个数据: 1.数据库系统允许的最大可连接数max_connections.这个参数是 ...

  2. .net4.5对应的安装mysql dll文件的版本_cmd下使用mysql插入中文出现无法退出语句的情况!终极解决办法! 安装mysql详细教程。...

    当你插入中文时遇到这种情况,始终无法退出. 当前数据库:网上下载的奇奇怪怪版本5.5 当前系统win10 当前CMD输入编码utf8 数据库编码utf8 表编码utf8 mysql> inser ...

  3. mysql在线修改表结构大数据表的风险与解决办法归纳

    整理这篇文章的缘由: 互联网应用会频繁加功能,修改需求.那么表结构也会经常修改,加字段,加索引.在线直接在生产环境的表中修改表结构,对用户使用网站是有影响. 以前我一直为这个问题头痛.当然那个时候不需 ...

  4. 谷歌翻译停服后,chrome无法自动翻译?解决办法来了~ (最新)

    谷歌翻译停服后,chrome无法自动翻译?解决办法来了~(最新2022/12/03) 一.打开蓝奏云分享的软件,下载下来运行(无需安装) https://amoureux555.lanzoum.com ...

  5. Mysql 8.0 遇到用遇到的几个问题及解决办法

    2059 - Authentication plugin 'caching_sha2_password' 问题原因,Mysql8.0开始加密用的是caching_sha2_password,之前用的是 ...

  6. ssh 安装及登录提示:connection refused(ssh: connect to host XX.XX.XX.XX port 22: Connection refused)的解决办法

    ssh 安装及登录提示:connection refused的解决办法 溪西创客小屋 原文出处:http://hi.baidu.com/leejun_2005/blog/item/fbc27c4b20 ...

  7. mysql添加用户出错_mysql添加用户inset报错1346解决办法

    我的MySQL版本为5.6.14版本,是二进制包安装的(虽然是二进制包安装的,但是以下问题同样适用于源码安装包安装的MySQL) 今天在我的测试库上添加一个新用户,报错: [mailto:mysql@ ...

  8. mysql忘记账号密码忘记了_mysql忘记帐号密码 解决办法。

    首先关闭mysql 使用命令行启动mysql(一般要找到mysql.ini文件) 在windows上mysql.ini文件可以通过查看当前mysql进程参数查看到,具体方法点此 在启动mysql命令行 ...

  9. mysql 主从同步不一致_MySQL 主从同步延迟的原因及解决办法

    mysql 用主从同步的方法进行读写分离,减轻主服务器的压力的做法现在在业内做的非常普遍. 主从同步基本上能做到实时同步.我从别的网站借用了主从同步的原理图. 在配置好了, 主从同步以后, 主服务器会 ...

  10. mysql sleep详解_mysql sleep链接过多的原因及解决办法

    今天收到运维同事短信,说有个线上业务"可能是数据库DB堵塞了,导致mysql链接过多,让我看一下". 回家后赶紧用家里vpn登录数据库服务器,show processlist 看了 ...

最新文章

  1. 如何终止正在在发送的ajax请求
  2. Android Stadio 使用GsonFormat 生成Java类
  3. python3在线-Python 3中的新功能
  4. tomcat常用的优化和配置
  5. android跳转到打电话,Android 应用跳转到拨打电话界面或qq进行聊天(qq咨询)
  6. 阈值Java_亲测有效!一种完美动态阈值白平衡算法 Java实现。
  7. java面向对象编程考试题,202514HJava面向对象编程答案试题题目及答案,期末考试题库,章节测验答案...
  8. 内核使用硬件ip的dma,dma_alloc_coherent 与 dma_alloc_writecombine (转)
  9. 洛谷 P3958 奶酪
  10. 函数判断的和是用android,WPJAM Basic 内置的系统和设备判断函数
  11. 论应用程序商店:软件销售模式的变革
  12. python自动填表格_Python读写Excel自动填表
  13. 计算机键盘芯片,电脑键盘芯片详解中文.pdf
  14. matlab hurst代码,Hurst指数法matlab程序求助
  15. python非法的标识符_Python标识符
  16. 【超详细】Windows平台安装 apache 2.4
  17. 首家共享充电宝倒闭了,王思聪要赌赢了吗?
  18. 关于联想小新Air14(或小新系列)更新系统后蓝屏的解决方法(关于windows系统更新安装补丁后出现蓝屏的解决方法)
  19. pageContext对象的用法详述
  20. fpxmocapy linke

热门文章

  1. 工作第一年的所见所闻所学所想
  2. 对话机器人(一)——对话机器人基础知识
  3. watch港版微信无法连接到服务器,Apple Watch微信打不开怎么办
  4. vue 统计中英文字符串长度_计算字符串长度以及截取字符串长度(英文占1个字符,中文汉字占2个字符)...
  5. 互联网行业的常用黑话,你知道几条?
  6. css 圆形背景icon_CSS3 各种色彩搭配方案的圆形LOADING动效
  7. 微信小程序--Todos案例
  8. 英雄联盟服务器维修中启动游戏失败,电脑登录英雄联盟失败的八种解决方法
  9. 程序员的副业:996的我们还要做副业吗?
  10. 树莓派是什么 树莓派能做什么 树莓派的功能用途