uct框架数据库sql文件导入错误之 sql_mode

uct框架在导入sql文件时可能会出现一种错误

ERROR 1101 (42000): BLOB/TEXT column 'brief' can't have a default value

这是由于mysql环境变量sql_mode设置使得对sql语句检查规则和数据校验有不同处理方式。

mysql支持三种sql_mode模式。

ANSI模式:宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告。

TRADITIONAL模式:严格模式,当向mysql数据库插入数据时,进行数据的严格校验,保证错误数据不能插入,报error错误。用于事物时,会进行事物的回滚。

STRICT_TRANS_TABLES模式:严格模式,进行数据的严格校验,错误数据不能插入,报error错误。

可以通过以下语句查看当前使用模式

select @@sql_mode;

检查发现当前使用的是严格模式导致sql导入失败。因此解决办法是

修改mysql配置文件/etc/my.cnf

在[mysqld]下面找到sql_mode配置注释掉重启即可

#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

ps:

my.cnf 可能有多个配置文件,因此如果你发现修改了还是没有生效,要检查一下是否有遗漏。

mysql --help | grep my.cnf

83:                      order of preference, my.cnf, $MYSQL_TCP_PORT,

149:/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

上一篇:64位操作系统 通过ODP.NET 访问ORACLE 11g


下一篇:ListView设置headerview和footerview