SQL state [HY000]; error code [3]; 问题分析

工作流表单采用了freemarker技术将表单与后台数据库绑定,每次修改表单定义将会对该表单对应的数据库执行alter操作。今天测试系统在执行保存表单定义操作时,报如下错误:

HTTP Status 500 - StatementCallback; uncategorized SQLException for SQL [ALTER TABLE T_DYMC_20140522141004 CHANGE f_xqdbm f_xqdbm VARCHAR(50) COMMENT ‘需求单编码‘;]; SQL state [HY000]; error code [3]; Error writing file ‘./oa_dev_test/#sql-131a6_41120.frm‘ (Errcode: 28); nested exception is java.sql.SQLException: Error writing file ‘./oa_dev_test/#sql-131a6_41120.frm‘ (Errcode: 28) 
type Exception report 
message StatementCallback; uncategorized SQLException for SQL [ALTER TABLE T_DYMC_20140522141004 CHANGE f_xqdbm f_xqdbm VARCHAR(50) COMMENT ‘需求单编码‘;]; SQL state [HY000]; error code [3]; Error writing file ‘./oa_dev_test/#sql-131a6_41120.frm‘ (Errcode: 28); nested exception is java.sql.SQLException: Error writing file ‘./oa_dev_test/#sql-131a6_41120.frm‘ (Errcode: 28) 
description The server encountered an internal error that prevented it from fulfilling this request. 
exception 
org.springframework.jdbc.UncategorizedSQLException: StatementCallback; uncategorized SQLException for SQL [ALTER TABLE T_DYMC_20140522141004 CHANGE f_xqdbm f_xqdbm VARCHAR(50) COMMENT ‘需求单编码‘;]; SQL state [HY000]; error code [3]; Error writing file ‘./oa_dev_test/#sql-131a6_41120.frm‘ (Errcode: 28); nested exception is java.sql.SQLException: Error writing file ‘./oa_dev_test/#sql-131a6_41120.frm‘ (Errcode: 28) 
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83) 
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) 
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) 
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:407) 
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:428) 
com.gaochao.oa.module.bpm.dymcform.server.service.impl.MysqlTableOperatorService.newUpdateColumn(MysqlTableOperatorService.java:280)

针对以上错误涉及到以下关键词:

1.alter table,即执行表结构修改操作;

2.frm:Mysql安装后在data文件夹中以frm,MYD,MYI为后缀的文件,其中*.frm是描述了表的结构,*.MYD保存了表的数据记录,*.MYI则是表的索引;一个表会对应一个frm文件,如-rw-rw---- 1 mysql mysql 14506 Aug 23 2014 t_sys_setinterface.frm

3.SQL state [HY000]; error code [3];

4.Errcode: 28

查阅MYSQL数据库异常编码错误代码),可以得出error code [3]系找不到相应路径;而Errcode: 28则与存储空间不足有关

后经DBA确认,测试数据库储存空间不足,经整理后,不再报上述错误。

gaochao
DBA,在吗
SQL state [HY000]; error code [3]; Error writing file ‘./oa_dev_test/#sql-131a6_41120.frm‘ (Errcode: 28)
10:27李DBA
在,啥意思啊
看不懂呵
测试库吧
10:28gaochao
是的
我在网上找了一下,这个错误的意思的
系统找不到指定路径
Code Error Message 
0 操作成功完成。 
1 功能错误。 
2 系统找不到指定的文件。 
3 系统找不到指定的路径。 
4 系统无法打开文件。 
以frm结尾的文件是什么文件
你分机号多少
10:38李DBA
83***
数据库中有frm格式的文件
一个表对应一个名字
-rw-rw---- 1 mysql mysql 14506 Aug 23 2014 t_sys_setinterface.frm
-rw-rw---- 1 mysql mysql 8688 Aug 23 2014 t_sys_setportal.frm
-rw-rw---- 1 mysql mysql 14552 Aug 23 2014 t_sys_sysinfo.frm
-rw-rw---- 1 mysql mysql 9070 Aug 23 2014 t_sys_tabledependence.frm
-rw-rw---- 1 mysql mysql 13497 Aug 23 2014 t_sys_taskcenter.frm
-rw-rw---- 1 mysql mysql 8594 Jan 6 11:01 t_sys_test.frm
-rw-rw---- 1 mysql mysql 22051 Aug 23 2014 t_sys_unit.frm
-rw-rw---- 1 mysql mysql 13006 Feb 3 13:51 t_sys_usercodepool.frm
-rw-rw---- 1 mysql mysql 8660 Aug 23 2014 t_sys_userdatarule.frm
-rw-rw---- 1 mysql mysql 14600 Aug 23 2014 t_sys_userext.frm
-rw-rw---- 1 mysql mysql 23523 Nov 11 11:36 t_sys_user.frm
-rw-rw---- 1 mysql mysql 13265 Aug 23 2014 t_sys_usergroup.frm
-rw-rw---- 1 mysql mysql 8900 Aug 25 2014 t_sys_userrole.frm
-rw-rw---- 1 mysql mysql 1539 Jan 22 14:19 t_sys_user.TRG
-rw-rw---- 1 mysql mysql 8644 Aug 23 2014 t_sys_weather.frm
类似这样的
刚查了下,的确没有sql-131a6_41120.frm这样的文件
10:42gaochao
那是不是临时文件
10:45gaochao
DBA
10:48gaochao
T_DYMC_20140522141004
10:50李DBA
-rw-rw---- 1 mysql mysql 16059 Jan 20 14:22 t_dymc_20140522141004.frm
这个表的定义有的
不知道那个sql-131a6_41120.frm是不是文件
临时文件
10:53gaochao
这边报的错,也是说找不到这个文件的路径,即errorcode:3
10:53李DBA
恩,我再看看
10:54gaochao
我刚测试了一下,修改同一个表的表结构对应的这个文件名称是相同的,不同表是不同的
10:54李DBA

10:58李DBA
你再试下看看
11:02李DBA
可以了吗
11:07gaochao
你改了什么
不会是重启了吧
11:07李DBA
没有,磁盘空间没了
释放了些空间
11:07gaochao
嗯,ok
3ks

时间: 2024-08-06 03:43:36

SQL state [HY000]; error code [3]; 问题分析的相关文章

HTTP Status 500 - JDBC exception on Hibernate data access: SQLException for SQL [n/a]; SQL state [HY000]; error code [1364]; could not execute statement; nested exception is org.hibernate.exception.Ge

HTTP Status 500 - JDBC exception on Hibernate data access: SQLException for SQL [n/a]; SQL state [HY000]; error code [1364]; could not execute statement; nested exception is org.hibernate.exception.GenericJDBCException: could not execute statement 翻译

oracle SQL state [99999]; error code [17026]; 数字溢出

org.springframework.jdbc.UncategorizedSQLException: CallableStatementCallback; uncategorized SQLException for SQL [{call updateUser(?, ?, ?, ?, ?, ?)}]; SQL state [99999]; error code [17026]; 数字溢出; 产生背景: oracle数据库从11g升级到12c 调用存储过程的代码是用的spring的StoredP

Translating SQLException with SQL state '42000', error code '1064'错误

PostgreSQL, Sybase]2018-04-12 14:18:55 [org.springframework.jdbc.support.SQLErrorCodesFactory]-[DEBUG] Looking up default SQLErrorCodes for DataSource [{ CreateTime:"2018-04-12 14:18:43", ActiveCount:1, PoolingCount:0, CreateCount:1, DestroyCoun

SQL state [72000]; error code [1013]; ORA-03111: 通信通道收到中断; java.sql.SQLException: ORA-01745: 无效的主机/绑定变量名;java.sql.SQLException: ORA-01013: 用户请求取消当前的操作

1.oracle批量插入 2.java.sql.SQLException: ORA-01745: 无效的主机/绑定变量名(数据太多的时候出现解决方法限制条数插入) /** * 按指定大小,分隔集合,将集合按规定个数分为n个部分 * @param <T> * * @param list * @param len * @return */ public static <T> List<List<T>> splitList(List<T> list,

SQL SERVER2014 安装 Error code 0x858C001B.

原因是语言版本不一致,SQL SERVER是中文简体版,操作系统是英文版,在操作系统.控制面板,区域语言设置为中文就Ok啦. TITLE: SQL Server Setup failure.------------------------------ssSQL Server Setup has encountered the following error: The SQL Server license agreement cannot be located for the selected e

Mysql导入Sql文件时报Error Code: 2013 - Lost connection to MySQL server during query

MySql 有时我们导入sql文件,文件过大,导致Error Code: 2013 - Lost connection to MySQL server during query这种错误 执行以下: [sql] view plain copy print? SHOW GLOBAL VARIABLES LIKE '%timeout'; SET GLOBAL net_write_timeout=28800; SET GLOBAL net_read_timeout=100; SET GLOBAL con

SQL报错error:索引中丢失IN或OUT参数

简单记录下: 今天mybatis中遇到一个错误: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO law_enforce_user(user_code,name,sex,birthday) VALUES(?,?,?,?)]; SQL state [99999]; error code [170

mysql error code &#39;1064&#39; 排查过程

下午自测代码,在这个update上卡了一个半小时,大大的降低了开发的生产力,把排查过程发出来,好的士兵不会掉进同一个陷阱.先把异常堆栈打出来. 2016-03-28 17:23:38.420 main DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory:463] - Finished creating instance of bean 'Sybase' 2016-03-28 17:23:38.42

Mybatis批量删除之Error code 1064, SQL state 42000;

(一)小小的一次记载. (二):最近的项目都是使用MyBatis,批量新增自己都会写了,但是一次批量删除可把我给折腾了下,写法网上都有,但是照着做就是不行,最后问公司的人,问网友才得到答案,那就是jdbc中需要在url中指定允许进行进行多条语句同时执行. 自己在写批量更新的时候也把相应的语句打印出来了的,复制出来执行是没问题,但是用junit测试的时候一直报错如下 Error code 1064, SQL state 42000: You have an error in your SQL sy