我有一个闭源升级应用程序,它将我的数据库从旧格式迁移到新格式(创建新表并将数据从旧表迁移到新表)。
应用程序因MySQLIntegrityConstraintViolationException崩溃。它没有给我带有主键冲突的表的名称或破坏的SQL查询的内容。
是否有任何MySQL服务器选项可以切换以提供更多故障排除信息?可能是失败的查询的文本或违反的主键约束的名称?
答案 0 :(得分:0)
您可以启用常规日志文件:http://dev.mysql.com/doc/refman/5.1/en/query-log.html。这样就可以看到服务器在哪一点停止处理查询。
您还可以运行MySQL命令show processlist
以查看当时正在处理的查询。
还要查看所有其他特定于应用程序的错误日志。
首次尝试可能是在迁移期间禁用外键检查:
SET foreign_key_checks = 0;
第一个猜测是,旧服务器支持0作为主键值,而新服务器不支持。