Mysql ошибка PDOStatement :: execute (): MySQL сервер ушел, используя Laravel и запрос curl - PullRequest
0 голосов
/ 04 февраля 2020

Я использую сторонний API для вставки данных в базу данных. Я столкнулся с этой проблемой уже на своем локальном компьютере, и я установил max_allowed_packet как и другие сообщения, и это сработало для меня. Но сейчас я использую наш linux удаленный сервер для вставки данных. Я не могу найти my.ini или какой-либо конфигурационный файл, но есть похожий файл, и здесь он называется 50-server.cnf, некоторые из них содержат его

#
# * Fine Tuning
#
key_buffer_size     = 16M
max_allowed_packet  = 1024M
thread_stack        = 192K
thread_cache_size       = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam_recover_options  = BACKUP
#max_connections        = 100
#table_cache            = 64
#thread_concurrency     = 10

#
# * Query Cache Configuration
#
query_cache_limit   = 32M
query_cache_size        = 1024M


Я также написал несколько запросов в нашем linux удаленный терминал для того, чтобы установить глобальные переменные. Вот некоторые из них

sudo mysql

SET SESSION wait_timeout = 999999;

SET SESSION net_read_timeout = 1000

SET GLOBAL connect_timeout = 1000;

после этого я запустите sudo /etc/init.d/mysql restart, затем я выполню функцию контроллера, но получаю PDOStatement::execute(): MySQL server has gone away

Я использую

Mysql: mysql Ver 15.1 Distrib 10.1.43-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Linux: Linux ip-172-31-16-16 4.15.0-1054-aws #56-Ubuntu SMP Thu Nov 7 16:15:59 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

PHP: Zend Engine v3.3.11, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.11-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

MariaDB: mariadb Ver 15.1 Distrib 10.1.43-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Может кто-нибудь сказать мне, в чем проблема с этим?

1 Ответ

0 голосов
/ 04 февраля 2020

Слишком долго для комментария.

  1. Ваши настройки бесполезны - после перезапуска будут использоваться значения по умолчанию из файла конфигурации my.cnf. Также SET SESSION изменяет значения для текущего соединения.

  2. Проверьте следующее:

    • Это ошибка сервера (например, сервер cra sh)? , После возникновения ошибки войдите в систему через клиент командной строки mysql и проверьте время работы сервера с помощью команды \s или status.

    • Откройте файл журнала ошибок MariaDB сервер go до конца и проверьте, есть ли какая-нибудь полезная информация.

    • Попробуйте выполнить инструкцию (которая передается в PDO :: execute) в mysql клиенте командной строки.
    • В случае оператора SELECT, убедитесь, что размер результирующего набора не превышает размер max_allowed_packet.
    • Capture traffi c с помощью tcpdump, откройте файл с помощью wireshark, установите фильтр на mysql и проверьте, можете ли вы найти дополнительную информацию.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...