드루팔 7 사이트에서이 변수에 대한 볼 파크 번호를 알아야합니다. 최근에 "drupal"PDOException : SQLSTATE [08S01] : Communication link failure : 1153 "오류가 발생했습니다. mysql을 처음 사용하고 공유 호스팅을 사용하고 있습니다. 관리자에게 요청 해주세요.
미리 감사드립니다.
드루팔 7 사이트에서이 변수에 대한 볼 파크 번호를 알아야합니다. 최근에 "drupal"PDOException : SQLSTATE [08S01] : Communication link failure : 1153 "오류가 발생했습니다. mysql을 처음 사용하고 공유 호스팅을 사용하고 있습니다. 관리자에게 요청 해주세요.
미리 감사드립니다.
답변:
가장 큰 BLOB에 관한 질문에 대한 흥미로운 답변을 보았습니다. 다음은 ServerFault에서 확인한 내용입니다. innodb_log_file_size 및 innodb_log_buffer_size 결합은 큰 객체가 많은 경우 가장 큰 BLOB 객체의 10 배보다 커야합니다 .
Nils-Anders Nøttseter의 ServerFault 게시물을 기반으로 테이블을 쿼리하고 가장 큰 BLOB를 찾아 해당 숫자에 11 이상을 곱한 다음 max_allowed_packet 으로 사용하십시오 .
max_allowed 패킷의 크기를 조정하여 문제를 해결할 수있는 또 다른 질문을 제기 한 것은 재미있는 일입니다 .
책 에 따르면
다음은 MySQL 패킷에 대한 내용입니다.
MySQL 네트워크 통신 코드는 쿼리가 항상 합리적으로 짧다는 가정하에 작성되었으므로 서버에서 하나의 청크로 서버로 보내고 처리 할 수 있습니다 .이를 MySQL 용어 로 패킷 이라고합니다 . 서버는 패킷을 저장하기 위해 임시 버퍼를위한 메모리를 할당하고이를 완전히 맞추기에 충분한 요청을합니다. 이 아키텍처는 서버에 메모리가 부족하지 않도록주의해야합니다.이 옵션은 패킷 크기를 제한합니다.
이 옵션과 관련하여 관심있는 코드는 sql / net_serv.cc에 있습니다. 한 번 봐 가지고 my_net_read ()를 , 다음의 호출에 따라 my_real_read을 () 와에 특히주의 ) (net_realloc .
이 변수는 또한 많은 문자열 기능의 결과 길이를 제한합니다. 자세한 내용은 sql / field.cc 및 sql / intem_strfunc.cc 를 참조하십시오.
MySQL 패킷에 대해이 사실을 알면 DBA는 크기가 크더라도 하나의 MySQL 패킷 내에 여러 BLOB를 수용 할 수 있도록 크기를 조정할 수 있습니다.
상황에 따라 데이터베이스에서 가장 큰 BLOB가 무엇인지, 그 숫자를 11로 곱한 다음 max_allowed_packet 을 해당 숫자로 설정해야합니다 . mysql을 다시 시작하지 않고 서버에 설정할 수 있어야합니다 (개인적으로는이 포럼의 범위를 벗어난 마이그레이션 및 복제와 관련된 다른 문제를 해결하기 때문에 256M으로 설정합니다). 들어오는 모든 연결에 대해 데이터베이스에 256M으로 설정하려면 다음을 실행하십시오.
SET GLOBAL max_allowed_packet = 1024 * 1024 * 256;
그런 다음 [mysqld]
섹션 아래의 my.cnf에이 설정을 추가 하십시오.
[mysqld]
max_allowed_packet = 256M
Drupal의 데이터베이스 서버 요구 사항 페이지 에서 가져온 것 :
시스템 변수 max_allowed_packet을 16M 이상으로 설정해야 할 수도 있습니다. 일부 저렴한 호스팅 계획은이 값을 너무 낮게 설정합니다 (MySQL 기본값은 1M에 불과 함). 이 경우 더 나은 호스팅 계획을 선택해야 할 수도 있습니다. Drupal 5에는 1M의 값으로 충분할 수 있습니다.
공유 호스팅 사이트에 적합합니다.
설정하기가 약간 까다로울 수 있습니다 max_allowed_packet
. 그 값을 계산하는 방법을 아직 찾지 못했습니다. 일반적으로 {cache}
테이블의 행을 포함하는 데이터베이스 스냅 샷을 복원하려고 할 때 문제가 발생합니다 .
이 문제가 발생하면 4M에서 8M 사이의 값을 선택합니다. 나는 그 값이 멈출 때까지 계속 부딪칩니다. 그러나 공유 호스트 가이 값을 변경하는지 여부는 알 수 없습니다.