MYSQL寻求mysqld启动选项的指导

我的道歉,如果这是一个基本的问题,但我一直在寻找通过这个网站和其他人的答案。 我有一个MySQL(5.6.13)数据库在周末修补。 但是,启动程序没有文档。 我终于可以重新启动它,但是现在我遇到了一些问题,我认为这些问题在启动选项中得到了解决,但没有find任何问题。 这个系统已经运行了4年以上,只有很小的问题。 今天当我通过脚本重新填充数据时,我遇到了两个问题。

问题1: Mysql错误:1406(22001):第1行的列'ftsub'的数据太长此错误是由此值:log_history_tam_dest。 该列是一个16位的varchar大小。在重新引导之前,这个值被MySQL截断为log_history_tam_是否有一个选项可以修剪string以适合列。 我看了,没有find它。

问题2: Mysql错误:1264(22003):第1行的列“fid”超出范围值。这被定义为INT大小64.值是2216112200,这是比signed int更大。 但是,这是与更大的价值。 当前最大的是:3716111600. my.cnf是否有启动选项来解决这两个问题?

我明白最好的是修复代码,但是,这是一个正在被replace的遗留系统。 客户需要这个运行到年底。

谢谢,艾伦

STRICT_TRANS_TABLES是这个问题。 它在configuration文件中默认启用,从5.6开始。 启用此function:

对于事务性表,当启用STRICT_ALL_TABLESSTRICT_TRANS_TABLES时,数据更改语句中的无效值或缺失值会发生错误。 该声明被中止并回滚。

https://dev.mysql.com/doc/refman/5.6/en/sql-mode.html#sql-mode-strict

在configuration文件中findsql-mode并删除STRICT_TRANS_TABLES并重新启动服务器。