0

我在 Debian 9.8 上使用 MariaDB 版本 10.1.38,我遇到(并解决了)两个新安装的应用程序(Directus 7 和 Laravel 5.8)的以下问题:

SQLSTATE[HY000]: General error: 1709 Index column size too large. The maximum column size is 767 bytes.

此修复适用于 Directus 7 和我的 Laravel 5.8,其中 Directus 无法使用Schema::defaultStringLength(191);适用于 Laravel 的修复进行修补。


这个问题的原因在这个单独的表格中讨论,但是我的问题与修复的影响有关。

对50-server.cnf文件进行了以下更改:

innodb_large_prefix = 1
innodb_file_format = Barracuda #usually antelope
innodb_default_row_format = dynamic #usually compact

为了修复 Directus 7,我还将该特定数据库的编码更改为 utf8_unicode_ci,但这只会影响该数据库。

我的问题如下:InnoDB 设置修改对使用此安装的其他数据库有什么影响? 这会破坏现有的安装模式(例如 Drupal/Joomla)吗?这将如何影响使用此 MariaDB 实例的未来应用程序?

提前致谢。

4

1 回答 1

0

几乎。还需要两件事:

SET GLOBAL innodb_file_format=Barracuda;
SET GLOBAL innodb_file_per_table=1;

这是该方法,以及针对 767 问题的 4 个其他解决方法:http: //mysql.rjweb.org/doc.php/limits#767_limit_in_innodb_indexes

于 2019-07-17T07:23:08.483 回答