[英]mysql to mariadb restoring backup
我的 mysql 数据库转储很好,但是当我在使用 mariadb 的新服务器上恢复它时,它只会部分恢复,然后抛出错误;
#1071 - 指定的密钥太长:最大密钥长度为 767 字节
我发现,当我使用程序安装时,它可以在我对数据库使用强制 UTF-8 整理”和“对表强制使用 UTF-8 整理”时起作用,但是当我只有原始 sql 文件 - 帮助?
这可以修复,可以在原始 sql 转储中用utf8
替换utf8mb4
。
其他解决方案可以在这里找到: #1071 - 指定的密钥太长; 最大密钥长度为 767 字节
这个问题在 5.7.7 (MariaDB 10.2.2?) 提高限制之前就存在了。
如果您因为尝试使用CHARACTER SET utf8mb4
而达到限制。 然后执行以下操作之一(每个都有一个缺点)以避免错误:
VARCHAR
上的 255 更改为VARCHAR
您会丢失任何超过 191 个字符的值(不太可能?);ALTER .. CONVERT TO utf8
你会丢失表情符号和一些中文;或者...继续使用 5.6/5.5/10.1 但执行 4 个步骤将限制提高到 3072 字节:
SET GLOBAL innodb_file_format=Barracuda; SET GLOBAL innodb_file_per_table=1; SET GLOBAL innodb_large_prefix=1; logout & login (to get the global values); ALTER TABLE tbl ROW_FORMAT=DYNAMIC; -- (or COMPRESSED)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.