mysql — PHP Предупреждение: mysqli_query (): преждевременное завершение данных (mysqlnd_wireprotocol.c: 967)

Встречается странная ошибка при выполнении MySQL-запроса с php:

PHP Warning:  mysqli_query(): Premature end of data (mysqlnd_wireprotocol.c:967) in /ours/scripts/update-trending.php on line 97
PHP Warning:  mysqli_query(): EOF packet 1 bytes shorter than expected in /ours/scripts/update-trending.php on line 97

Запрос прост и отлично работает, когда выполняется сам по себе:

mysql> select ifnull(count(nid),0) from likes where nid=18578;
+----------------------+
| ifnull(count(nid),0) |
+----------------------+
|                    0 |
+----------------------+
1 row in set (0.03 sec)

Ошибка появляется во время цикла for, который перебирает значения nid (1-19000). Это работает на 98% запросов, но иногда происходит случайный сбой с вышеуказанной ошибкой. Все это происходит на одном соединении mysqli, так что это не проблема аутентификации.

Фактический используемый код (внутри цикла for):

$qLikesSQL='select ifnull(count(nid),0) from likes where nid=' . $thisNID;

if ($qLikesResulter=mysqli_query($link,$qLikesSQL)) {
if ($qLikesRow=mysqli_fetch_assoc($qLikesResulter))
{
$qLikes=$qLikesRow['ifnull(count(nid),0)'];
}
mysqli_free_result($qLikesResulter);
} else echo "MySQL query failed:  $qLikesSQL\n";

Версия PHP:

PHP 7.0.28-0ubuntu0.16.04.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.28-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies

Версия MySQL:

AWS RDS Instance - Aurora MySQL 5.7.12

Журналы ошибок MySQL генерируются:

2018-03-27T13:27:52.576966Z 7276977 [Note] Aborted connection 7276977 to db: '***snip***' user: '***snip***' host: '***snip***' (Got an error reading communication packets)

ОБНОВЛЕНИЕ: Я переместил базу данных из экземпляра RDS Aurora MySQL (5.7.12) в экземпляр RDS MySQL (5.7.16), и проблема исчезла. Так что, скорее всего, это что-то особенное для Авроры.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]