InnoDB设置修改对现有/新数据库的影响

时间:2019-07-17 03:40:37

标签: mysql sql mariadb mariadb-10.1

我在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实例的未来应用程序?

先谢谢了。

1 个答案:

答案 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