报错信息
执行的SQL语句出错:
CREATE TABLE `business_user` (
`id` varchar(19) NOT NULL COMMENT '主键',
`password` varchar(255) DEFAULT NULL COMMENT 'password',
`username` varchar(255) DEFAULT NULL COMMENT '用户名',
`identity` int(1) DEFAULT NULL COMMENT '商户身份(1:员工,2:老板)',
`business_name` varchar(100) DEFAULT NULL COMMENT '商户名称',
`address` varchar(100) DEFAULT NULL COMMENT '商户地址',
`coordinate` varchar(100) DEFAULT NULL COMMENT '商户地址坐标(经度,纬度)',
`auth_status` int(1) DEFAULT NULL COMMENT '认证状态(0:未认证,1:认证通过,2:认证不通过)',
`license_img_url` varchar(255) DEFAULT NULL,
`salt` varchar(255) DEFAULT NULL COMMENT '随机盐',
`phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
`avatar` varchar(255) DEFAULT NULL COMMENT '头像',
`dept_id` int(11) DEFAULT NULL COMMENT '部门ID',
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`lock_flag` char(1) DEFAULT '0' COMMENT '0-正常,9-锁定',
`del_flag` char(1) DEFAULT '0' COMMENT '0-正常,1-删除',
`wx_openid` varchar(32) DEFAULT NULL COMMENT '微信openid',
`qq_openid` varchar(32) DEFAULT NULL COMMENT 'QQ openid',
`tenant_id` int(11) NOT NULL DEFAULT '1' COMMENT '所属租户',
PRIMARY KEY (`id`),
UNIQUE KEY `user_username_uindex` (`username`),
UNIQUE KEY `user_business_name_uindex` (`business_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
错误信息:Specified key was too long; max key length is 767 bytes
分析
数据库采用的引擎为InnoDB,此引擎支持索引长度为767字节,而username varchar(255)中255*4显然超过了767。
解决办法
修改数据库参数:innodb_large_prefix=ON,或者varchar长度设置小些,如:varchar(64)