pcntl_fork时MySQL“查询期间丢失连接”问题的原因是子进程继承了父进程的数据库连接。当孩子退出时,连接将关闭。如果父节点此时正在执行查询,则它在已经关闭的连接上执行,因此出错。

避免这种情况的一种简单方法是在分叉后立即在父级中创建新的数据库连接。不要忘记通过在mysql_connect()的第4个参数中传递true来强制建立新连接:

<?php
// Create the MySQL connection
$db = mysql_connect($server, $username, $password); $pid = pcntl_fork(); if ( $pid == -1 ) {        // Fork failed            exit(1);
} else if ( $pid ) { // We are the parent // Can no longer use $db because it will be closed by the child // Instead, make a new MySQL connection for ourselves to work with $db = mysql_connect($server, $username, $password, true);
} else { // We are the child // Do something with the inherited connection here // It will get closed upon exit exit(0);
?> 

这样,子进程将继承旧连接,将对其进行处理并在退出时关闭。父母不会关心,因为它会在fork后立即为自己打开一个新的连接。

原文链接

pcntl_fork导致Mysql have gone away问题解决相关推荐

  1. 服务器异常重启,导致mysql启动失败,问题解决过程记录

    思路一:检查linux的安全策略. 1.查看SELinux状态:/usr/sbin/sestatus -v 2.如果状态为enabled,则为开启状态,将其设置关闭状态,以上截图为设置后的状态: 1) ...

  2. pcntl_fork 导致 MySQL server has gone away 解决方案

    pcntl_fork 前连数据库,就会报 MySQL server has gone away 错误.原因是子进程会继承主进程的数据库连接,当mysql返回数据时,这些子进程都可以通过这个连接读到数据 ...

  3. 防火墙导致mysql登录不上_防火墙导致MySQL无法访问的问题解决案例

    问题 数据库总是访问不了以致不得不反反复复的重启MySQL数据库. 但是重启的效果并不明显,重启10几分钟后问题依然出现.导致前端用户难以正常访问网站. 另外他们还通过google,百度搜索,怀疑是数 ...

  4. linux mysql cpu 高,Linux系统中关于Mysql数据库导致CPU很高的问题解决

    Linux系统中关于Mysql数据库导致CPU很高的问题解决 发布时间:2007-11-19 00:01:12来源:红联作者:spworks 服务器环境 Liunx AS4 + PHP5 + Mysq ...

  5. mongodb 导出指定数据库文件大小_大数据技术之将mongodb 数据指定字段导出,然后指定字段导入mysql 实例 及相关问题解决...

    本篇文章探讨了大数据技术之将mongodb 数据指定字段导出,然后指定字段导入mysql 实例 及相关问题解决,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. 需求:将mongo ...

  6. mysql数据库binlog日志截断报错,导致mysql主从同步失败故障排查

    mysql数据库binlog日志截断报错,导致mysql主从同步失败故障排查 Got fatal error 1236 from master when reading data from binar ...

  7. mysql 执行计划 改变_数据量增加导致mysql执行计划改变解决_MySQL

    bitsCN.com 数据量增加导致mysql执行计划改变解决 收到运维同学电话,mysql服务器连接数满了,登录服务器查看,确实满了,好吧,首先增加连接数到2500,暂时提供对外服务.连接继续升高, ...

  8. Mysql批量插入数据问题解决和优化

    Mysql批量插入数据问题解决和优化 一.问题描述 项目中mysql批量插入大概50000左右数据,使用事务和批量,但是速度依旧很慢,大约60s左右,迫切希望改进这个问题. 二.问题原因 尽管是批量a ...

  9. mysql批量insert bug_MySQL Bug insert into on duplicate key update 语法更新 text blob 大字段导致 MySQL crash...

    1. 背景 业务执行 SQL 导致 MySQL 进程 Crash,做故障切换后,新的主库又 Crash 了.查看 MySQL 错误日志,发现多次 Crash 时的堆栈相同,如下: Thread poi ...

最新文章

  1. android 百度导航滑动会异常,百度导航Android版问题集
  2. 智能支付稳定性测试实战
  3. java五子棋_Java初级项目——从零开始制作一个简易五子棋游戏
  4. PID控制器开发笔记(转)
  5. 一次ORACLE启动报错修复的记录
  6. 【To Understand】程序员面试金典——番外篇之洪水
  7. react jsoneditor 的学习使用
  8. html生成jsessionid,jsessionid是什么
  9. echarts:中国地图-省市区二级联动
  10. Python--邮件处理
  11. 2018走出架构误区
  12. Python 英文电影中参演人员名单一般以某种方式进行排版显示
  13. 【《Redis深度历险》读书笔记(1)】基础:万丈高楼平地起 ——Redis 5种基础数据结构
  14. python turtle库输出文字_Python 海龟 turtle 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计...
  15. Oracle ADG状态查看与相关视图
  16. 电机世界之直流无刷电机(科普文)
  17. php js页面刷新,JS刷新页面方法总结
  18. 162页官方PPT,详述西门子TIA Portal V17
  19. SAP MDG —— 一个典型的MDG项目组织架构和顾问技能要求(仅供参考~)
  20. Silvaco TCAD如何定义Tcad中没有的材料?

热门文章

  1. 带着问题学 Kubernetes 抽象对象 Service 服务间调用
  2. 在PyCharm环境中使用graphviz遇到的问题
  3. 云控系统机房搭建为什么用到网络交换机?
  4. zoj 2975 Kinds of Fuwas(数学题)
  5. 二、谈谈对数据库中索引的理解
  6. 多行文字显示不完用省略号表示
  7. 悟空CRM9从零开始搭建详细步骤——肯定成功
  8. 一些模拟器在配置文件内查找端口号的方式
  9. 在docker容器中操作es,并给es7.6添加用户鉴权设置密码
  10. h5画三角形_H5如何在网页中绘制三角形,值得一看