旧服务器是 MariaDB 10.6 新服务器是 MariaDB 10.3
我 mysqldump 仍然是主副本并正常运行的旧数据库。
我确保在 cnf 文件中使用这个新的服务器数据库设置为 InnoDB(就像旧的一样):
[mysqld]
innodb_buffer_pool_size=1G
然后使用全新的 maria DB(请注意 10.3),我会:
- 登录并创建数据库newdatabase
- sudo mysql -u root -p newdatabase < media_data_master.dump
结果是:
ERROR 1071 (42000) at line 266: Specified key was too long; max key length is 1000 bytes
我在上面链接的 stackoverflow 帖子谈到了 VARCHAR 都是 255 并且导致了这个问题。然而,最大的问题是我不知道我将如何解决这个问题。使用数据库的人甚至不在我的部门,我只是想把东西移到新的服务器上。
create database my_db character set utf8 collate utf8_bin;
在导入之前我也尝试过,但同样的问题。
如果旧数据库仍然可以正常工作并且我们的副本似乎仍在完美复制,那么我在这里是否缺少一些东西可以让我导入转储并避免此错误?
这是一个重大的降级。这个问题可能不是唯一的。
无论如何,请参阅以下 5 种方法来解决我怀疑的问题:http: //mysql.rjweb.org/doc.php/limits#767_limit_in_innodb_indexes
另一方面,“1000”是一个更好的线索。您正在使用 MyISAM。不。相反,移动到
ENGINE=InnoDB
.如需进一步讨论,请提供
SHOW CREATE TABLE
存在该问题的任何表格。在您的 my.cnf(在两台服务器上)搜索“engine”以查看它是否被强制执行。