数据库错误:在一个事务中插入的数据大于重做日志大小的 10%

6 database innodb drupal

我遇到了 Drupal 内容类型的问题:当我在已经有大约 10 个字段类型的个性化内容类型中创建新的字段类型(例如:文本)时,网站变得不可用,我收到此消息

网站遇到意外错误。请稍后再试。”而不是网站的页面。

如果我不离开页面并单击“删除”(新的字段类型),则可以返回网站。如果我允许它,那么在刷新页面后,整个网站将无法访问,使其再次工作的唯一方法是在我的网站主机上恢复数据库的保存。

我尝试在两种不同的内容类型中多次添加一个新字段,结果相同。看起来要创建的字段数量是否有限制(我只为整个网站制作大约 25 个最大值......)。

谁能帮我解决这个问题?

这是“长”错误消息日志的开头:

网站遇到意外错误。请稍后再试。Drupal\Core\Database\DatabaseExceptionWrapper:SQLSTATE[42000]:语法错误或访问冲突:1118 在一个事务中插入的 BLOB/TEXT 数据的大小大于重做日志大小的 10%。使用 innodb_log_file_size 增加重做日志大小。: INSERT INTO {watchdog} (uid, type, message, variables, Severity, link, location, referer, hostname, timestamp) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_inert_placeholder: db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9); 数组 ( [:db_insert_placeholder_0] => 5 [:db_insert_placeholder_1] => php [:db_insert_placeholder_2] => %type: %function 中的@message(%file 的第 %line 行)。[:db_insert_placeholder_3] => a:6:{s:5:"%type";s:45:"Drupal\Core\Database\DatabaseExceptionWrapper";s:8:"@message";s:1062480:"SQLSTATE[ 42000]:语法错误或访问冲突:1118 在一个事务中插入的 BLOB/TEXT 数据的大小大于重做日志大小的 10%。使用 innodb_log_file_size 增加重做日志大小。:INSERT INTO {cache_default} (cid, expire,创建,标签,校验和,数据,序列化) VALUES(:db_insert_placeholder_0,:db_insert_placeholder_1,:db_insert_placeholder_2,:db_insert_placeholder_3,:db_insert_placeholder_4,:db_insert_placeholder_5,:db_insert_placeholder_5,:db_insert_placeholder),:db_insert_insert_expires(c_insert_placeholder), :db_insert_placeholder), :db_insert_placeholder), :db_insert_placeholder), :db_insert_placeholder), :db_insert_placeholder), :db_insert_placeholder ,创建 = VALUES(创建),标签 = VALUES(标签),校验和 = VALUES(校验和),数据 = VALUES(数据),序列化 = VALUES(序列化);数组 ( [:db_insert_placeholder_0] => views_data:en [:db_insert_placeholder_1] => -1 [:db_insert_placeholder_2] => 1513178721.199

还有大量的文字......最后一段是:

Drupal\dblog\Logger\DbLog->log(3, '%type: @message in %function (line %line of %file).', Array) (Line: 104)
Drupal\dblog\Logger\DbLog->log(3, '%type: @message in %function (line %line of %file).', Array) (Line: 136)
Drupal\Core\Logger\LoggerChannel->log(3, '%type: @message in %function (line %line of %file).', Array) (Line: 65)
Drupal\Core\EventSubscriber\ExceptionLoggingSubscriber->onError(Object) (Line: 92)
Drupal\Core\EventSubscriber\ExceptionLoggingSubscriber->onException(Object, 'kernel.exception', Object) (Line: 108)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.exception', Object) (Line: 230)
Symfony\Component\HttpKernel\HttpKernel->handleException(Object, Object, 1) (Line: 79)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 99)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 78)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 50)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 657)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Run Code Online (Sandbox Code Playgroud)

Dmy*_*voy 5

搜索配置文件:

sudo find / -name my.cnf
Run Code Online (Sandbox Code Playgroud)

默认配置位于:/etc/mysql/my.cnf

在mysql目录下搜索innodb_log_file_size

sudo grep -rl "innodb_log_file_size" /etc/mysql
Run Code Online (Sandbox Code Playgroud)

只是为了检查你是否已经配置了一些东西

打开我的.cnf:

sudo nano /etc/mysql/my.cnf
Run Code Online (Sandbox Code Playgroud)

您可以编辑此文件并添加

[mysqld]
innodb_log_file_size=256M
Run Code Online (Sandbox Code Playgroud)

[mysqld] 是section名,nano里用ctrl+W搜索,不要加两次!

或者更好地创建/etc/mysql/conf.d/innodb.cnf并放置上面的 innodb 配置。

注意!确保你有

!includedir /etc/mysql/conf.d/
Run Code Online (Sandbox Code Playgroud)

my.cnf包含自定义配置的文件中的字符串。

sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)