mysql away,MySQL server has gone away问题及其解决
初看这个提示,你可能会发笑,这个mysql的提示真是人性化呢。很快你就会笑不出来了,因为,问题是需要用来解决的。
看上去,应该是两次mysql操作之间的时间太长了,导致mysql连接自动关闭了。可是根据经验,对同一批数据,此前程序也这么写过,两次操作的时间也同样很长。更何况,同事也同时在操作这个库,间隔的时间比我的更长。
看了mysql服务器端的wait_timeout和max_allowed_packet的值,绝对的长和大!如下:
以下是代码片段:
mysql> show variables like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout | 28800 |
+---------------+-------+
1 row in set (0.00 sec)
mysql> show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
1 row in set (0.00 sec)
看着这些数据,感觉可以判断出服务器端应该是没有问题的,但是总得用实验说话,编写如下程序:
以下是代码片段:
echo "Start !\n";
sleep(30);
echo "End !\n";
mysql_close($link);
?>
执行之后,到mysql服务器端show processlist;发现一超过20秒,就没有其连接了。然而再到另一台服务器上执行,却无此问题。top命令了一下,发现两台服务器的空闲内存的确差异很大。而上面又说明了,同事和我在同一服务器上对这个库进行操作却无此问题,真令人诧异。
而后又发现,我程序有个bug,有一数字变量本意是存储sql语句的记录,然而并没有考虑这个数组在执行时间好几个小时之后的大小会成为天文数字。莫非这个地方有问题?
既然暂时可以排除服务器的问题,只好从我的程序入手了。
mysql_ping()是个好东西,但用得也不是很爽。手册中“If it has gone down, an automatic reconnection is attempted. ”。但是,发现它并没有automatic reconnection。
于是只好,先判断mysql_ping()的返回值,如果false,则mysql_close()本次连接,然后mysql_connect()。
如果是在类里面实现的话,建议加上mysql_connect()第四的参数为true。这样在实例化的时候避免资源符号只有一个。
参考资料:
mysql away,MySQL server has gone away问题及其解决相关推荐
- MySQL: Starting MySQL….. ERROR! The server quit without updating PID file解决办法
1 问题 [root@localhost mysql]# /etc/rc.d/init.d/mysql status MySQL is not running, but lock file (/var ...
- Starting MySQL... ERROR The server quit without updating PID file 解决办法
百度了许多方法未果,偶然在一篇文章下的评论里发现了解决办法,如下: 在/etc/my.cnf文件里的[mysqld]下添加"user=root" 然后执行 service mysq ...
- 启动MySQL出错: Starting MySQL….. ERROR! The server quit with
启动MySQL出错: Starting MySQL-.. ERROR! The server quit with (2013-02-19 17:25:17) 转载▼ 标签: mysql error m ...
- mysql 启动错误-server PID file could not be found
2019独角兽企业重金招聘Python工程师标准>>> [root@centos var]# service mysqld stop MySQL manager or server ...
- Starting MySQL... ERROR! The server quit without updating PID file 问题解决
Starting MySQL... ERROR! The server quit without updating PID file 问题解决 参考文章: (1)Starting MySQL... E ...
- Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/vm10-0-0-19
输入:service mysqld start 报错: Starting MySQL.. ERROR! The server quit without updating PID file (/usr/ ...
- the serveice mysql_解决重启MySQL数据库The server quit without updating PID file问题
今天遇到一个网友求助,提到自己的网站可能是被攻击或者是其他问题导致网站无法打开.这里我也有看到他的网站打开之后提示"Error establishing a database connect ...
- mysql can_***MySQL错误:Can't connect to MySQL server (10060)
解决方法: 1. 改表法. 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 ...
- mysql oracle mvcc_PostgreSQL、Oracle/MySQL和SQL Server的MVCC实现原理方式
PostgreSQL.Oracle/MySQL和SQL Server的MVCC实现原理方式 关系数据库管理系统使用MVCC(Multiversion Concurrency Control多版本并发控 ...
- mysql errmsg unknown_详解MySQL Server 启动时出现bug的解决方法
在用的mysql Server 无法启动.日志如下: 复制代码 代码示例: 130507 12:22:11 mysqld started 130507 12:22:11 [Warning] opti ...
最新文章
- [转]Web API Introduction to OData Services using ASP.NET Web API
- 新闻网站项目django--注册页
- 有没有测试水泥稳定性的软件,水泥稳定碎石土7天无侧限抗压强度制件(参考模板)...
- VULKAN学习资料
- 卸载 PyCharm!这才是 Python 小白的最理想的 IDE
- 浏览器的headers
- NodeJs实现下载Excel文件
- python中的面向对象
- Netty 的 FastThreadLocal 到底快在哪里
- oracle中update锁记录,oracle进行update时对行加锁的测试
- arduino UNO 点亮LED例程
- 第一个动态网页——留言板
- 主流的推荐系统算法总结
- JS之 解决fakepath问题,并实现base64图片上传(单图上传)
- google内部考核制度OKR
- WTL的CBitmapButton在MFC下完美使用
- HarmonyOS使用ArkUI绘制圣诞树
- android 分享给好友,手机将安卓软件分享给好友的方法
- STM32F103C8核心板原理图
- SimpleDateFormat.parse()方法中的时区设置缺陷
热门文章
- 动态路由协议BGP介绍
- vue+echarts 后台获取数据_vue+element+echarts 响应式后台管理系统,了解一下?
- 【Flink基础】-- Flink CDC介绍
- 菏泽中考报名不报计算机,菏泽中考报名系统
- python和ui设计哪个有前途_平面设计和UI设计哪个行业更有前途
- c++11 is_copy_assignable说明
- 杂谈PPT 文档撰写
- 2021-06-30剑指offer28.对称的二叉树
- 广告效果聚类分析 -------- KMeans
- classloader读取配置文件_类加载器加载配置文件的几种写法