gpt4 book ai didi

mysql - 使用 Mysql 复制的 Drupal 8 安装

转载 作者:可可西里 更新时间:2023-11-01 08:24:19 25 4
gpt4 key购买 nike

我正在尝试使用来自 Compose.io 的 Mysql 服务默认情况下,此服务具有复制(3 个节点)当我尝试通过 Drush 或 WebUI 安装 Drupal 时,出现了一些错误:

无法将值插入数据库服务器上的测试表。我们尝试使用命令 INSERT INTO {drupal_install_test} (id) VALUES (1) 插入一个值,服务器报告以下错误:SQLSTATE[HY000]: General error: 3098 该表不符合外部插件的要求。 : 插入 {drupal_install_test} (id) VALUES (1);数组 ( ) .

无法更新数据库服务器上测试表中的值。我们尝试使用命令 UPDATE {drupal_install_test} SET id = 2 更新一个值,服务器报告了以下错误:SQLSTATE[HY000]: General error: 3098 The table does not compliance the requirements by an external plugin.: UPDATE {drupal_install_test } 设置 id = 2;数组 ( ) .

无法从数据库服务器上的测试表中删除值。我们尝试使用命令 DELETE FROM {drupal_install_test} 删除一个值,服务器报告了以下错误: SQLSTATE[HY000]: General error: 3098 The table does not compliance the requirements by an external plugin.: DELETE FROM {drupal_install_test};数组 ( ) .

当复制开启时,每个表都需要有一个主键,显然 Drupal 默认不添加这些。

是否有任何解决方法可以将 Drupal 配置为使用启用复制的 Mysql 数据库?

请注意,Compose.io 不会向用户公开副本,只会向用户公开主副本。

最佳答案

这显然是新的 Group Replication 返回的错误消息特征。

是的,Group Replication 要求所有表都有一个主键。

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

Every table that is to be replicated by the group must have a defined primary key, or primary key equivalent where the equivalent is a non-null unique key.

不幸的是,Drupal 用于测试安装的测试表没有主键(或等效项)。

这已作为问题报告给 Drupal:https://www.drupal.org/project/drupal/issues/2856362

Drupal 8.5 或更高版本中可能会有一个修复程序,但与此同时,该问题中的评论者可能会提出有用的补丁。基本上,您只需将几个文件中的 drupal_install_test 表的创建更改为:

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

关于mysql - 使用 Mysql 复制的 Drupal 8 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47784729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com