2017-12-13 2 views
3

Ich versuche, den Mysql-Service von Compose.io Dieser Service hat standardmäßig Replikation (3 Knoten) Wenn ich versuche, Drupal entweder durch Drush oder WebUI zu installieren, bekomme ich einige Fehler:Drupal 8 Installation mit Mysql Replikation

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 () .

Wenn die Replikation aktiviert ist, muss jeder Tisch ein haben Primärschlüssel und scheinbar Drupal fügen diese standardmäßig nicht hinzu.

Gibt es eine Problemumgehung bei der Konfiguration von Drupal für die Verwendung einer Mysql-Datenbank mit Replikation?

Beachten Sie, dass Compose.io die Replikate, nur den Master, für den Benutzer nicht verfügbar macht.

Antwort

2

Dies ist offenbar eine Fehlermeldung, die von der neuen Funktion Group Replication zurückgegeben wird.

Ja, die Gruppenreplikation erfordert, dass alle Tabellen einen Primärschlüssel haben.

https://dev.mysql.com/doc/refman/5.7/en/group-replication-requirements.html sagt:

Jede Tabelle, die von der Gruppe repliziert werden soll, muss eine definierte Primärschlüssel haben, oder Primärschlüssel äquivalent, wo das Äquivalent einer nicht-null eindeutiger Schlüssel ist.

Leider hat die Testtabelle, die Drupal zum Testen der Installation verwendet, keinen Primärschlüssel (oder ein Äquivalent). https://www.drupal.org/project/drupal/issues/2856362

in Drupal 8.5 oder höher, aber in der Zwischenzeit

Es könnte sein, ein Update kommen, nützlicher Patches von commenters in dieser Frage vorgeschlagen da sein könnte:

Dies wurde als ein Problem zu Drupal berichtet. Im Grunde müssen Sie nur die Erstellung der Tabelle drupal_install_test in ein paar Dateien zu ändern:

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

Bill, du bist mein Held! Danke für das Teilen! Der Patch hat funktioniert! –