[debian-mysql] Bug#886756: Bug#886756: Regression: Specified key was too long; max key length is 767 bytes

Jonas Meurer jonas at freesources.org
Tue Aug 7 09:58:41 BST 2018


Am 07.08.2018 um 10:51 schrieb Jonas Meurer:
> Hey Otto,
> 
> Am 06.08.2018 um 23:09 schrieb Otto Kekäläinen:
>> I plan to have this commit included in the next upload of MariaDB
>> 10.1.x into Debian:
>> https://salsa.debian.org/mariadb-team/mariadb-10.1/commit/89ae638d1d3b5a7157d086a9be2468cae764aae7
> 
> Yay, that's great news. Thanks a ton!

One more question: do you intend to push this fix to
stretch-proposed-updates? I think this would be a good idea since the
regression is unfixed in Stretch so far.

Cheers,
 jonas

> 
> Cheers
>  jonas
> 
>> ti 9. tammik. 2018 klo 17.45 Jonas Meurer (jonas at freesources.org) kirjoitti:
>>>
>>> Package: mariadb-server-10.1
>>> Version: 1:10.1.29-6
>>> Severity: serious
>>> Tags: upstream
>>>
>>> Control: -1 forwarded https://jira.mariadb.org/browse/MDEV-14904
>>>
>>> Hello,
>>>
>>> I just discovered that MariaDB 10.1 packages in Sid, Buster and Stretch
>>> break applications that expect a maximum allowed size of 255 characters
>>> for VARCHAR fields. E.g.:
>>>
>>>> django.db.utils.OperationalError: (1071, 'Specified key was too long;
>>>> max key length is 767 bytes')
>>>
>>> This is due to the fact that MariaDB in Debian has `utf8mb4` set as
>>> default character since version 10.0.20-2 which raises the required
>>> amount of memory per character.
>>>
>>> To still allow fields with > 191 < 255 characters, `innodb_large_prefix`
>>> has to be enabled, which in turn requires the following settings:
>>>
>>>> innodb_file_format      = Barracuda
>>>> innodb_file_per_table   = On
>>>> innodb_large_prefix     = On
>>>
>>> Unfortunately even that is not enough. Additionally, the row format for
>>> tables needs to be changed to `dynamic`.
>>>
>>> Starting with MariaDB 10.2, `innodb_default_row_format` was introduced,
>>> which allows to set the default row format for the whole MariaDB server.
>>> Unfortunately, this option is not available in MariaDB 10.1 yet. In
>>> other words, there's no way to configure MariaDB 10.1 in Debian in a way
>>> that it works with applications that expect things like VARCHAR(255) to
>>> be possible.
>>>
>>> This is a severe regression. I discussed this topic with MariaDB
>>> upstream developer Marko Mäkelä (dr-m) on IRC and he agreed that they
>>> can backport `innodb_default_row_format` for the next upstream release
>>> of MariaDB 10.1. I created an upstream bugreport to track this:
>>>
>>> https://jira.mariadb.org/browse/MDEV-14904
>>>
>>> I suggest that this fix should be backported to MariaDB 10.1 in Debian
>>> Stable as well as it is a severe regression compared to MySQL and
>>> earlier MariaDB versions (i.e. pre 10.0.20-2).
>>>
>>> PS: This problem doesn't exist with MariaDB >= 10.2 or MySQL 5.7 as
>>> both switched to `Barracudea` as default `innodb_file_format` along
>>> with `innodb_large_prefix` and `dynamic` as default row format.
>>>
>>> See the following bugreports and discussion threads for further details:
>>>
>>> * https://jira.mariadb.org/browse/MDEV-9646
>>> * https://code.djangoproject.com/ticket/18392
>>> * https://stackoverflow.com/questions/30761867/mysql-error-the-maximum-column-size-is-767-bytes
> 
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-mysql-maint/attachments/20180807/bb281fd1/attachment.sig>


More information about the pkg-mysql-maint mailing list