啥也不说了,说多了都是泪啊。。。
说明
原本自己在原主题的基础上做了一些修改,在本地测试的没问题,然而发布到服务器上之后出现后台的主题参数无法配置的情况,百思不得骑姐啊。。。
经过
既然报interval error,那就查查错误原因呗,于是乎,打开java程序日志,发现如下提示:
Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '='
看着更多的像是编码问题咯,于是各种查数据库中的编码问题,查阅了halo官方的sql建库语句,搭建了测试库,依然不好使,感觉很纳闷,于是后来查询建表语句的时候发现点猫腻
CREATE TABLE `theme_settings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`create_time` datetime(6) DEFAULT NULL,
`update_time` datetime(6) DEFAULT NULL,
`setting_key` varchar(255) NOT NULL,
`theme_id` varchar(255) NOT NULL,
`setting_value` longtext NOT NULL,
PRIMARY KEY (`id`),
KEY `theme_settings_setting_key` (`setting_key`),
KEY `theme_settings_theme_id` (`theme_id`)
) ENGINE=InnoDB AUTO_INCREMENT=697 DEFAULT CHARSET=utf8
原建表语句如上,看着utf8也没什么大问题,关键就要看上面的提示了,mb4是重点!
编码有问题!!!
解决
ALTER TABLE theme_settings CONVERT TO CHARACTER SET utf8mb4;
执行上述语句,把这张表的编码修改为utf8mb4解决了,真是哭啊。。。
之所以在本地测试过程中没问题,是因为本地使用的默认h2数据库,所以未发现该情况。
评论区