MYSQL数据库报错 1055
今天在做毕业设计,当点开要查看的视图的时候,爆出了1055的错,该错误如下:
在这里插入图片描述

错误原因:在MySQL5.7之后,sql_mode中默认存在ONLY_FULL_GROUP_BY,SQL语句未通过ONLY_FULL_GROUP_BY语义检查所以报错。

ONLY_FULL_GROUP_BY:ONLY_FULL_GROUP_BY要求select语句中查询出来的列必须是明确的(其他语句也是一样)。

以SQL语句select columes from table group by list为例:columns必须是聚集函数或者在group by后的表达式list中,并且list中必须包含主键,否则也会报错。

insert、update、delete语句都会报错(但不影响SQL语句的执行),因为这三种语句执行之前也会执行查询操作。

以主键为id的表为例:

SELECT count(1) FROM customer GROUP BY name;该SQL执行成功,因为count是聚集函数;

SELECT * FROM customer GROUP BY name;该SQL执行失败,因为*中包含主键id,而group by后的表达式中并没有包含id

SELECT name FROM customer GROUP BY name;该SQL执行成功,因为name包含在group by后的表达式中

SELECT name, contact FROM customer GROUP BY name;该SQL执行失败,因为contact没有包含在group by后的表达式中

解决办法

这里只介绍永久解决的办法,很简单,跟着我做肯定可以成功
首先新建一个查询。输入:

SELECT @@sql_mode

然后会出现
在这里插入图片描述
复制蓝色的,复制起来,打开mysql数据库的安装路径的my.imi文件,用文本打开即可
(MySQL配置文件所在位置:安装版可通过windows服务所对应mysql启动项,查看其对应属性->可执行文件路径,获取my.ini路径。免安装版一般在其根目录下。(默认是my-default.ini,必须将名字改为my.ini才能生效))
然后查看是否有sql_mode,如果没有直接添加即可,我这里是添加在mysqld下面,然后把刚刚蓝色的粘贴下来即可
在这里插入图片描述
然后win+R,输入services.msc
在这里插入图片描述
点确定会进去找到mysql服务
在这里插入图片描述
右键重启即可解决问题!!!!

Logo

更多推荐