前言

MySQL数据库迁移到RDS记录
主要原因是服务器装不上MySQL5.7

正文

配置

数据库类型 MySQL5.7
CPU 1 核
最大连接数 2000
实例规格 mysql.n1.micro.1

迁移过程

登入phpMyAdmin
导出 ---> 执行
数据导出完毕
登入RDS ---> 数据导入
报错

Specified key was too long; max key length is 767 bytes

分析

Typecho原本使用了MYISAM引擎,但导入后变成InnoDB引擎

innodb存储引擎,多列索引的长度限制如下
每个列的长度不能大于767 bytes;所有组成索引列的长度和不能大于3072 bytes
myisam存储引擎,多列索引长度限制如下:
每个列的长度不能大于1000 bytes,所有组成索引列的长度和不能大于1000 bytes

所以改为MYISAM即可让长度大于767 bytes
尝试在参数管理中修改默认引擎,以适配数据库
但参数限制只能是InnoDB
查阅资料发现RDS不支持MYISAM引擎 参考文档
看来从更改引擎方面是无法解决

那都是为了让长度大于767 bytes
何必一定要MYISAM呢
直接让长度大于767 bytes

解决

在RDS实例的参数管理中找到innodb_large_prefix参数
设置为ON
重启实例

Last modification:July 8, 2022
大哥给点钱吧~ヽ(・ω・´メ)(微信 支付宝 QQ都是一个码哦~