LAMP MySQL, (Получил ошибку при чтении пакетов связи) при вызове хранимой процедуры - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть сервер Ubuntu, где я получаю (ошибка чтения пакетов связи) ошибка в MySQL error.log

Но я получаю эту ошибку только при вызове хранимой процедуры(любая хранимая процедура, которая возвращает значение) из PHP.

Я создал тестовую процедуру, просто чтобы сузить ее:

DELIMITER //
 CREATE PROCEDURE hello_world()
      BEGIN
           select "Hello World";
      END //
 DELIMITER ;

Это мой тестовый код php:

<?php
     $link_id = mysqli_connect("localhost", "root", "password" )or die ("no database server");
     mysqli_select_db( $link_id,"test_db) or die ("database not found");

     $query="select 'testing';";
     echo $query.'<br>';
     $result=mysqli_query($link_id,$query)or die("Query fail: " . mysqli_error());
     $row = mysqli_fetch_row($result);
     echo  $row[0].'<br><br>';

     $query="call hello_world;";
     echo $query.'<br>';
     $result=mysqli_query($link_id,$query)or die("Query fail: " . mysqli_error());
     $row = mysqli_fetch_row($result);
     echo  $row[0].'<br><br>';

     $query="select 'testing';";
     echo $query.'<br>';
     $result=mysqli_query($link_id,$query)or die("Query fail: " . mysqli_error());
     $row = mysqli_fetch_row($result);
     echo  $row[0].'<br><br>';
 ?>

php печатает следующее:

select 'testing';
testing

call hello_world;
Hello World

select 'testing';
Query fail:

Это потому, что я получаю ошибку (Ошибка чтения пакетов связи) сразу после вызова хранимой процедуры, поэтомуСессия mysql уже закрыта, когда третий запрос пытается выполнить.

Примечание: запрос, вызывающий хранимую процедуру, всегда работает!Я всегда получаю результат этого запроса, он просто разрывает мое соединение с базой данных.

Как мне устранить эту проблему?

...