2017-12-13 4 views
3

Compose.io의 Mysql 서비스를 사용하려고합니다. 이 서비스는 기본적으로 복제 (노드 3 개) 입니다. Drush 또는 WebUI를 통해 Drupal을 설치하려고하면 오류 : 복제가 켜져있을 때Mysql 복제가있는 Drupal 8 설치

Failed to INSERT a value into a test table on your database server. We tried inserting a value with the command INSERT INTO {drupal_install_test} (id) VALUES (1) and the server reported the following error: SQLSTATE[HY000]: General error: 3098 The table does not comply with the requirements by an external plugin.: INSERT INTO {drupal_install_test} (id) VALUES (1); Array () .

Failed to UPDATE a value in a test table on your database server. We tried updating a value with the command UPDATE {drupal_install_test} SET id = 2 and the server reported the following error: SQLSTATE[HY000]: General error: 3098 The table does not comply with the requirements by an external plugin.: UPDATE {drupal_install_test} SET id = 2; Array () .

Failed to DELETE a value from a test table on your database server. We tried deleting a value with the command DELETE FROM {drupal_install_test} and the server reported the following error: SQLSTATE[HY000]: General error: 3098 The table does not comply with the requirements by an external plugin.: DELETE FROM {drupal_install_test}; Array () .

는 모든 테이블이 있어야합니다 기본 키 및 드루팔 (Drupal)은 기본적으로 추가하지 않습니다.

복제가있는 MySQL 데이터베이스를 사용하도록 Drupal을 구성 할 수있는 해결 방법이 있습니까?

Compose.io는 마스터에만 복제본을 노출하지 않습니다.

답변

2

이것은 분명히 새로운 Group Replication 기능에 의해 반환 된 오류 메시지입니다.

예, 그룹 복제에서는 모든 테이블에 기본 키가 있어야합니다.

https://dev.mysql.com/doc/refman/5.7/en/group-replication-requirements.html는 말한다 :

에 해당하는이 null이 아닌 고유 키입니다 정의 된 기본 키 또는 기본 키 상당이 있어야 그룹에 의해 복제 될 때마다 테이블.

불행히도, 테스트 테이블 Drupal은 설치에 기본 키 (또는 동급)가 없음을 테스트하는 데 사용됩니다.

이것은 드루팔에 대한 문제로보고되었습니다 https://www.drupal.org/project/drupal/issues/2856362

나중에 드루팔 8.5 이상에서 오는 수정이있을 수 있습니다 만, 그 사이에, 그 문제에 덧글에 의해 제안 된 유용한 패치가있을 수 있습니다. 기본적으로 몇 개의 파일에서 drupal_install_test 테이블의 생성을 다음과 같이 변경해야합니다.

CREATE TABLE {drupal_install_test} (id INT NOT NULL PRIMARY KEY) 
+0

빌, 당신은 내 영웅입니다! 공유해 주셔서 감사합니다. 패치가 작동했습니다! –