繁体   English   中英

mysql 到 mariadb 恢复备份

[英]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而达到限制。 然后执行以下操作之一(每个都有一个缺点)以避免错误:

  • 升级到 5.7.7(或更高版本)以获得 3072 字节的限制;
  • 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM