MySQL有结果但不会将结果返回给Web服务器

我发现了一个奇怪的情况,希望得到你的帮助,这是我的方案。 </ p>


  1. Webserver运行Apache + PHP + MySQL(5.6.12)主模式</ p> </ li>

  2. OLAP 运行MySQL(5.6.19)从属模式</ p> </ li>
    </ ol>

    因此,当用户请求从Web服务器获取报告时,它会将SQL stmt发送到 OLAP获得结果。 问题是,如果smtm的日期范围很小,比如1个月,那么数据将正常返回,但如果报告需要很长时间才能处理,因为它的日期范围是一年,它将不返回任何内容。 </ p>

    让我解释一下“它什么都不会有意义”。 </ p>


    1. Web服务器将经过长处理的SQL stmt发送到OLAP服务器。 </ li>
    2. OLAP服务器处理stmt一段时间(MySQL进程列表中的“查询”状态)然后转为“睡眠”状态。</ li>
    3. 进入睡眠状态后, 它等待直到180秒(wait_timeout)在MySQL中设置,然后被杀死。 </ li>
    4. 在网络状态方面,它显示ESTABLISHED,然后显示FIN_WAIT1并与网络服务器关闭,就像正常的TCP连接状态一样。 </ li>
    5. 我尝试使用Navicate查询相同的stmt,Navicate给了我一个结果。 </ li>
    6. 我尝试在Web和OLAP中使用strace,我能得到的是Apache打开“读取”系统调用,以及从OLAP服务器等待数据。 同时,OLAP显示“轮询”系统调用,但永远不会将结果返回给Web服务器。 </ li>
      </ ol>

      如果您遇到同样的情况,请帮助我。 </ p>

      谢谢。</ p>
      </ div>

展开原文

原文

I found a strange situation that would like to have your help, here is my scenario.

  1. Webserver runs Apache + PHP + MySQL(5.6.12) Master mode

  2. OLAP runs MySQL(5.6.19) Slave mode

So, when users make a request to get a report from the webserver, it sends SQL stmt to OLAP to get result. Here is the problem, if the smtm has a small date range like 1 month, the data will return normally, but if the report takes a long time to process because it has a date range like one year, it will return nothing.

Let me explain "it will return nothing" meaning.

  1. The webserver sends a long-processed SQL stmt to the OLAP server.
  2. The OLAP server process the stmt for a while ( "Query" status in MySQL processlist) then turns to "Sleep" status.
  3. After going to Sleep status, it waits until 180 second (wait_timeout) which was set in MySQL, and then gets killed.
  4. In term of networking status, it shows ESTABLISHED, then FIN_WAIT1 and close connection with the webserver like normal TCP connection states.
  5. I tried to use Navicate for query the same stmt, Navicate gives me a result.
  6. I tried to use strace in both the web and OLAP, what I can get is Apache open "read" system call, and waiting data back from the OLAP server. At the same time, OLAP shows "poll" system call, but never return result back to the web server.

Please help me if you have been through the same situation.

Thanks.

duanbiaojin8860
duanbiaojin8860 我发现这是因为Ubuntu主人和奴隶之间的版本不同。我会发现更多,究竟是什么问题。
5 年多之前 回复
duanguoyin7008
duanguoyin7008 除了phpmax执行时间之外,还需要确保mysql没有将超时阈值设置得太低。当您的查询未将结果返回到php应用程序时,您是否能够从您使用的任何数据库库中检索错误消息?你应该能够
5 年多之前 回复
douzhuijing4911
douzhuijing4911 我只是尝试将它从60s改为1hr,但仍然得到了相同的结果。
5 年多之前 回复
dongzaizai2015
dongzaizai2015 1.你的php.ini将设置一个最长的执行时间,你超过了。
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问