Mysql异常'SET OPTION SQL_SELECT_LIMIT=DEFAULT'

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 在用hive时遇到这样的一个异常,因为hive的元数据是存储在mysql数据库中,所以对于hive表的操作相应的会操作数据库中表的数据,该问题发生于删除表的时候,创建的时候并未产生该异常。经过查阅资料了解到mysql通过jdbc链接的时候会进行测试'SET OPTION SQL_SELECT_LIMIT=DEFAULT',但是5.6以后的版本弃用了set的方式。
+关注继续查看

在用hive时遇到这样的一个异常,因为hive的元数据是存储在mysql数据库中,所以对于hive表的操作相应的会操作数据库中表的数据,该问题发生于删除表的时候,创建的时候并未产生该异常。经过查阅资料了解到mysql通过jdbc链接的时候会进行测试'SET OPTION SQL_SELECT_LIMIT=DEFAULT',但是5.6以后的版本弃用了set的方式。

异常信息

NestedThrowablesStackTrace:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at line 1

异常分析

我用的数据库版本是5.7但是用的驱动版本是5.1.8的,现在5.7的数据库中支持的set语句为:
https://dev.mysql.com/doc/refman/5.7/en/set-statement.html

The SET statement has several forms:

SET var_name = value enables you to assign values to variables that affect the operation of the server or clients. See Section 14.7.4.1, “SET Syntax for Variable Assignment”.

SET CHARACTER SET and SET NAMES assign values to character set and collation variables associated with the current connection to the server. See Section 14.7.4.2, “SET CHARACTER SET Syntax”, and Section 14.7.4.3, “SET NAMES Syntax”.

SET PASSWORD assigns account passwords. See Section 14.7.1.7, “SET PASSWORD Syntax”.

SET TRANSACTION ISOLATION LEVEL sets the isolation level for transaction processing. See Section 14.3.6, “SET TRANSACTION Syntax”.

set option SQL_SELECT_LIMIT.....已经过时。并且在5.6之后该语法就已经被删除了。

5.6相关的set指令
https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_sql_select_limit

然而用的驱动版本较低的情况下,还是使用以前的set指令导致出错。

解决

将驱动版本升级,尽量驱动版本和数据库版本对应,这个问题切换为5.1.22以上即可。

附StackOverflow
http://stackoverflow.com/questions/15669270/option-sql-select-limit-default

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
mysql异常java.math.BigInteger cannot be cast to java.lang.Long
mysql异常java.math.BigInteger cannot be cast to java.lang.Long
|
2月前
|
SQL Oracle 关系型数据库
【MySQL异常】1093 - You can‘t specify target table ‘daily_job‘ for update in FROM clause
【MySQL异常】1093 - You can‘t specify target table ‘daily_job‘ for update in FROM clause
43 0
|
2月前
|
存储 SQL 关系型数据库
【MySQL异常】Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNA
【MySQL异常】Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNA
36 0
|
2月前
|
SQL 关系型数据库 MySQL
【MySQL异常】MySQL事务锁问题----lock wait timeout exceeded; try restarting transaction
【MySQL异常】MySQL事务锁问题----lock wait timeout exceeded; try restarting transaction
30 0
|
2月前
|
XML 关系型数据库 MySQL
【MySQL异常】ExecutorException: Error getting generated key or setting result to parameter object
【MySQL异常】ExecutorException: Error getting generated key or setting result to parameter object
51 0
|
2月前
|
SQL 关系型数据库 MySQL
【SQL异常】启动MySQL报错:ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)
【SQL异常】启动MySQL报错:ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)
44 1
|
2月前
|
SQL 关系型数据库 MySQL
【SQL异常】启动MySQL时发生系统错误的解决方法(net start mysql 发生系统错误 5。 拒绝访问)
【SQL异常】启动MySQL时发生系统错误的解决方法(net start mysql 发生系统错误 5。 拒绝访问)
54 1
|
4月前
|
关系型数据库 MySQL Java
家人们,谁懂啊!mysql 版本5.7.99连接异常
在项目工作中需要部署nacos,数据库使用的是别的公司提供的mysql,本来挺好部署的一个服务却被一个报错打破,异常如下:
43 0
家人们,谁懂啊!mysql 版本5.7.99连接异常
|
5月前
|
SQL 关系型数据库 MySQL
Mysql 异常:Lock wait timeout exceeded; try restarting transaction的解决办法
Mysql 异常:Lock wait timeout exceeded; try restarting transaction的解决办法
|
7月前
|
关系型数据库 MySQL 数据库
一文剖析MySQL主从复制异常错误代码13114
一文剖析MySQL主从复制异常错误代码13114
208 0
推荐文章
更多