前言
今天给自建的edusoho网课系统添加图文课程的时候,一直提示系统错误。经过一顿摸索最后发现是数据库的问题。mysql提示:Data too long for column 'content' at row 1,也就是字段过长。
content字段用的是text格式,按理说不会出现数据太长的问题。
又在网上搜了好久,有说选择“longtext的,不过我的这个版本的没有。
最后找到一个好的方法,就是修改sql_mode。
实践
- 登陆数据库,查看当前的sql_mode:
mysql> SELECT @@global.sql_mode;
+--------------------------------------------+
| @@global.sql_mode |
+--------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_Z|
|ERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_|
|BY_ZERO,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
1 row in set (0.00 sec)
- 重新赋值,或直接留空:
//重新修改值
mysql> SET @@global.sql_mode= 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Query OK, 0 rows affected (0.00 sec)
//或直接留空
mysql> SET @@global.sql_mode= '';
Query OK, 0 rows affected (0.00 sec)
- 如果重启之后又恢复,需要直接从配置入手
修改mysql的配置文件my.cnf或者mysqld.cnf(我的是后者)
在合适的位置添加下面这段代码即可:
[mysqld]
sql_mode = NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
结语
对数据库修改了配置或者更改了配置文件之后需要重启才生效。
至此,不出意外的话,错误已经修复了。