Caused by: java.sql.SQLSyntaxErrorException: Expression #1 of ORDER BY
前言
是不是升级了mysql版本,或者安装mysql后出现的问题,mysql 5.7.5以后版本加入sql_node校验。好多函数可能不规范不能使用。
1.方式一 简单粗暴法
set @@global.sql_mode =''; -- 直接在mysql控制台将校验设置成空
直接将校验设置成空后,重启电脑后mysql会自动还原配置(等于没解决)
2. 方式二 (Mac 直接看这里)
此处针对于Mac,Windows其实也是一样的
1. 我们要在/etc下新建my.cnf (默认没有这个文件,如果有就更好了)
2. $ cd /etc
3. $ sudo vim my.cnf
将下面的文档拷贝到my.cnf, 如果wq无法退出, 使用wq!命令,还不行用w !sudo tee %强制保存
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL[client]
default-character-set=utf8[mysqld]
log-error=/usr/local/mysql/data/mysqld.log
# skip-grant-tables
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
4. 这个时候需要重启mysql服务,必须用命令重启(需要先把这里停掉)
5. 执行下面的命令重启,如果设置Stop MySQL Server没关这里是关不掉的。
sudo /usr/local/mysql/support-files/mysql.server restart
注意: 设置里关闭MySQL按钮和这个重启命令是冲突的。
设置里不关服务,使用命令是无法重启的。同样用命令启动的服务,设置里也关不掉。
sql_mode常用值如下:
1. 如果不想检验sql就把sql_node配置成null,规范一点就加上函数。
ONLY_FULL_GROUP_BY:
对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中
NO_AUTO_VALUE_ON_ZERO:
该值影响自增长列的插入。默认设置下,插入0或NULL代表生成下一个自增长值。如果用户 希望插入的值为0,而该列又是自增长的,那么这个选项就有用了。
STRICT_TRANS_TABLES:
在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制
NO_ZERO_IN_DATE:
在严格模式下,不允许日期和月份为零
NO_ZERO_DATE:
设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告。
ERROR_FOR_DIVISION_BY_ZERO:
在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如 果未给出该模式,那么数据被零除时MySQL返回NULL
NO_AUTO_CREATE_USER:
禁止GRANT创建密码为空的用户
NO_ENGINE_SUBSTITUTION:
如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常
PIPES_AS_CONCAT:
将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似
ANSI_QUOTES:
启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符
原文链接:mac mysql sqlmode_MySQL的sql_mode模式说明及设置_我是你们的老贞的博客-CSDN博客
sql_node是什么?
sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入。(这里指的是开发环境)
在生产环境必须将这个值设置为严格模式,所以开发、测试环境的数据库也必须要设置,这样在开发测试阶段就可以发现问题。
Caused by: java.sql.SQLSyntaxErrorException: Expression #1 of ORDER BY相关推荐
- Cause: java.sql.SQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY错误
出错原因:MySQL 5.7.5 及以上功能依赖检测功能,而我使用的mysql是8.0版本.如果启用了ONLY_FULL_GROUP_BY SQL 模式(默认情况下),MySQL将拒绝选择列表,HAV ...
- NACOS2.1. 最新版本启动报错Caused by: java.sql.SQLSyntaxErrorException: Unknown column ‘encrypted_data_
数据表缺少encrypted_data_key字段 我是手动为据表添加该字段 数据库表 config_info.config_info_beta.his_config_info中需要新增字段 encr ...
- 项目运行报错java.sql.SQLSyntaxErrorException: Table ‘sell.hibernate_sequence‘ doesn‘t exist
1.问题: java.sql.SQLSyntaxErrorException: Table 'sell.hibernate_sequence' doesn't exist at com.mysql.c ...
- 毕业设计Spring boot问题记录(后端三):java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax;
原创博文,欢迎转载,转载时请务必附上博文链接,感谢您的尊重 报错情况 intell IDEA调试台报错 Caused by: java.sql.SQLSyntaxErrorException: You ...
- java.sql.SQLSyntaxErrorException问题常见解决方案:比如Table xxx doesn‘t exist;Unknown column ‘xxx‘ in ‘where...
文章目录 1. Table 'jqp.spring_session' doesn't exist 1.1 分析问题 1.2 解决问题 1.2.1 第一种解决方法 1.2.2 第二种解决方式 2. Ta ...
- java.sql.SQLSyntaxErrorException: Table 'ph.tbl_user' doesn't exist
报错信息如下: org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java. ...
- Error selecting key or setting result to parameter object. Cause: java.sql.SQLSyntaxErrorException
## 通用mapper insertSelective方法报语法错误 报错信息如下 Caused by: java.sql.SQLSyntaxErrorException: You have an e ...
- Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符 2016-05-06 23:03 815人阅读 评论(0) 收藏 举报 分类: 代码 ...
- 异常 -- Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
最近一个项目要用到iBatis,之前没怎么用过,所以今天下午先练练手. 写完一个Demo以后,运行时,抛出了异常,似乎找不到什么错误... 然后百度了一下.. 原来 Ibatis中,在xml中写完SQ ...
最新文章
- 实施ERP系统要先进行思考
- HttpClient测试类请求端和服务端即可能出现乱码的解决
- python3随记——字符编码
- 将Reporting Service 2005 SP2集成部署到WSS3或MOSS2007服务器场心得
- 数据库 流量切分_互联网大厂有哪些分库分表的思路和技巧?
- 传递实体类对象_Java I/O 流之对象流中的序列化和反序列化
- vue中axios的基本使用,天气查询案例
- Indent Guides插件格式代码
- 小D课堂 - 新版本微服务springcloud+Docker教程_6-04 自定义Zuul过滤器实现登录
- Mimics:修改像素单位
- linux执行telnet命令,Linux怎么使用telnet命令
- Toplitz矩阵 Hankel矩阵 Hilbert矩阵
- 电流速断保护c语言程序,[单选] 电流电压联锁速断保护与过电流保护十分相似,只是取消了()继电器。...
- 一点感悟: 詹姆斯与全栈工程师
- 带有Arduino的WS2812B可寻址RGB LED灯条指南
- Stratified Sampling(分层采样)
- 查找 Mac 的机型名称和序列号四种方法
- 将josn对象转换成string并格式化
- ur机器人计算机模拟仿真,ur机器人编程-设置工具
- 服务之星网络评选视频投票小程序如何进行视频投票免费公众号投票