Magento MySQL에서 사라짐 오류


14

Magento CE 1.7.0.2에서 많은 이상한 문제가 있습니다. 정상적인 작동 중에 사이트는 때때로 프론트 엔드 및 백엔드 모두 에서 Magento 오류 페이지 ( 요청을 처리하는 동안 오류가 발생했습니다 )를 생성합니다. 관련 보고서를 보면 다음 메시지가 표시됩니다.

"SQLSTATE[HY000] [2006] MySQL server has gone away"

때때로, 그러나 더 드물게 보고서 메시지는 다음과 같습니다.

 Connection reset by peer

I는 살펴 보았다 VAR> 로그> SYSTEM.LOG 하고 MySQL has gone away다음으로 오류가 동반된다 :

Warning: PDO::__construct(): MySQL server has gone away  in /var/www/html/domain.com/live/lib/Zend/Db/Adapter/Pdo/Abstract.php on line 129
Error while reading greeting packet. PID=1863  in /var/www/html/domain.com/live/lib/Zend/Db/Adapter/Pdo/Abstract.php on line 129

이 외에도 모든 요청과 오류에 다음 오류가 발생하는 것 같습니다 MySQL has gone away.

 Warning: include(File.php): failed to open stream: No such file or directory  in /var/www/html/domain.com/live/lib/Varien/Autoload.php on line 93
 Warning: include(): Failed opening 'File.php' for inclusion

나는 이것에 대해 찾을 수있는 대부분의 기사를 보았고 젖소가 집에 돌아올 때까지 데이터베이스 매개 변수로 고민했지만 오류는 남아 있습니다.

컴파일러에 대한 다른 QnA 를 수행 한 후 관리 페이지 시스템> 도구> 편집 이 완전히 비어 있음을 알았습니다 . 나는 이것들이 모두 관련 오류라고 생각하지만 디버깅이나 원인에 대한 통찰력이 도움이 될 것입니다.

이것이 일관성이없는 경우 사과드립니다. 약 42 시간 동안 깨어 났으므로 설명을 요청하십시오. 감사합니다.

-업데이트-

명확성을 위해 내 서버 스택 :

PHP 5.5.4 (PHP-FPM)
Nginx 1.4.2
MySQL 5.5.33

-업데이트-

PHP 코드베이스와 MySQL DB는 별도의 하드웨어 서버에 있습니다. 나는 사과.


1
영구 데이터베이스 연결을 사용하고 있습니까? 그렇다면 비활성화하십시오. 또한 mysql 로그를 확인하여 오류가 있는지 또는 실제로 다시 시작되고 연결이 끊어 졌는지 확인합니다.
davidalger

오류가 발생했을 때 MySQL 로그와 DB를 마무리하는 Thx David 나는 끊임없는 연결을 사용하고 있었는데, 도움이되지 않았다 :(
Jongosi

1
연결이 불량하다고 생각 했습니까? 이 오류의 원인은 DB가 msg를 얻지 못했기 때문입니다. local.xml의 연결 정보를 사용하여 mysqli 함수를 호출하여 디버깅을 시도하십시오. 어떻게되는지보십시오.
SH-

감사합니다. 로컬 파일을 편집 할 때 문제가 해결 된 것 같습니다

답변:


9

이것은 주로 다음 두 가지 이유 때문입니다.

  1. 서버가 시간 초과되어 연결을 종료했습니다.
    수정 : wait_timeoutmysqld의 my.cnf/my.ini 설정 파일 에서 변수를 늘리십시오 .
  2. 서버가 잘못되었거나 너무 큰 패킷을 삭제했습니다.
    수정 :의 값을 증가시켜 최대 패킷 크기 제한을 증가 max_allowed_packet에서 my.cnf/my.ini 파일.

너무 오래 걸리거나 적용 할 수없는 것을 얻으려면 파일을 확인하십시오.


Thx Anshu, MySQL 쿼리 로그를 따르고 있으며 데이터베이스에 요청이 적중되지 않습니다. 또한 서버를 재부팅하면 서버가 온라인 상태가 된 후 20 초 이내에 오류가 발생할 수 있습니다. 기본 설정이 시간 초과 되기에는 너무 짧습니다. 나는 max_allowed_packet2G와 wait_timout86400으로 설정했지만 여전히 도움이되지 않습니다.
Jongosi

데이터베이스 연결이 올바른지 확인하십시오. app / etc / local.xml 파일을 확인하십시오
Anshu Mishra

Thx Anshu, 예, 맞습니다-연결은 요청의 약 68 %입니다
Jongosi

6

문제가 해결되었습니다! 도와 주셔서 감사합니다. 이는 웹 호스트가 Google에 의해 비활성화 된 후에도 하드웨어 방화벽 문제입니다.

1 & 1에서 확인한대로 의 서버 팀이 하드웨어 방화벽이 올바르게 구성되었지만 파일 서버와 DB 서버 간의 유효한 트래픽을 25 % 정도 잘못 가로 채고있었습니다.

대신 iptables를 구성하고 하드웨어 방화벽을 완전히 종료했습니다. 100 % 가용성.


2
어머! 산발적 인 방화벽… 그런 종류의 문제를 좋아해야합니다. 분류해서 다행입니다. :)
davidalger

여기에 동일한 문제가 있으며 귀하의 솔루션이 우리에게도 효과가있는 것처럼 보입니다. 1 & 1도 이야기하겠습니다. 지원이 어떤 식 으로든 도움이 되었습니까? 연락 할 수 있습니까? 트위터? 페이스 북? 자세한 내용은 내 프로필을 참조하십시오. 감사합니다
webDEVILopers 2016 년

2

Magento 2.1에서 동일한 문제가 발생했으며 "MySQL이 사라졌습니다"프로세스 중에 mysql 오류 로그에 다음 오류가 여러 번 표시되었습니다.

...[Warning] File Descriptor 1228 exceeded FD_SETSIZE=1024

잠재적으로이 문제를 해결하려면 먼저 확인 open files과 값 $ ulimit -n내 경우였다 256.

둘째, table_open_cache = {that ulimit -n value}[mysqld]섹션 아래 에 추가 하십시오 my.cnf.

이제 MySQL을 다시 시작하면 다시 작업에 복귀 할 수 있습니다.

참고 : PHP 7.1의 OS X El Capitan 및 Homebrew의 MySQL 5.7.15 빌드에서 Magento 2.1을 로컬로 실행하고 있습니다. 그러나이 솔루션은 이전 또는 다른 설정에서도 작동 할 것이라고 확신합니다.


1

Magento 폴더에서 app / etc / local.xml 파일을 편집하여 호스트 항목을 'localhost'대신 '127.0.0.1'로 바꿉니다.


데이터베이스는 별도의 하드웨어 서버에 있으므로 MySQL 서버의 IP 주소가 사용됩니다.
Jongosi

1

두 서버간에 큰 데이터베이스를 마이그레이션 할 때 동일한 오류가 발생했습니다.

로컬 (대상) 서버의 mysql 구성 파일 (/etc/mysql/my.cnf)에 다음을 임시로 추가하고 mysql (서비스 mysql restart)을 다시 시작하면 문제가 해결되었습니다.

max_allowed_packet      = 160M
wait_timeout            = 28800000
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.