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