我的php项目有一个迁移文件。我收到此错误
语法错误或访问冲突:1071指定密钥太长;最大 密钥长度为767字节
我明白这个问题是由于varchar(512)和charset - UTF8引起的,但我该如何解决?我无法更改我的迁移脚本。我可以在MySql的my.ini中更改一些属性吗?
CREATE TABLE if not exists usermaster (
user_id bigint(20) NOT NULL,
username varchar(512) NOT NULL,
PRIMARY KEY (user_id,username),
KEY fk_um_idx (user_id),
CONSTRAINT fk_um_idx FOREIGN KEY (user_id) REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
答案 0 :(得分:0)
如果您坚持在512上保留用户名的长度,以下对重复主题的评论会提供2种可能性:https://stackoverflow.com/a/41298282/5987517
我认为我们的最佳解决方案是将您的编码从UTF-8
更改为latin1_general_ci