我在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,无法使用适用于Laravel的Schema::defaultStringLength(191);
修复程序对Directus进行修补。
reasons for this issue are discussed within this separate form,但是我的问题与修复程序的影响有关。
对 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实例的未来应用程序?
先谢谢了。
答案 0 :(得分: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