项目迁移中 遇到的MySQL问题
两个问题都是数据库迁移导致的
1.Expression #16 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'sanghe.a.contract_no' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by]
改问题是sql_mode配置,sql_mode=ONLY_FULL_GROUP_BY导致的,查询sql_mode的配置
select @@global.sql_mode

查看结果中是否有 ONLY_FULL_GROUP_BY 删除即可 或重新配置
set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION‘
参考 解决MySQL5.7版本之后使用GROUP BY语句时报错
2.The user specified as a definer (‘skip-grants user‘@‘skip-grants host‘) does not exist
‘skip-grants user‘@‘skip-grants host 不存在
MySQL中表是没有所有者的 只有函数 触发器等菜存在所有者 此次数据库迁移使用方式是 navicat 15 备份数据库后恢复备份,出现了此问题。查询函数详细信息,可见所有者信息

解决办法
复制函数的创建语句 删除所有者信息,重新执行 问题解决


浙公网安备 33010602011771号