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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

  工作流表单采用了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




     本文转自 gaochaojs 51CTO博客,原文链接:http://blog.51cto.com/jncumter/1615708 ,如需转载请自行联系原作者


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
SQL 存储 缓存
四、SQL语句执行过程分析
四、SQL语句执行过程分析
34 0
|
3月前
|
SQL 数据采集 关系型数据库
如何解决MySQL报错 You have an error in your SQL syntax; check the manual that corresponds to your MySQL?
如何解决MySQL报错 You have an error in your SQL syntax; check the manual that corresponds to your MySQL?
|
10天前
|
SQL 数据库 索引
SQL索引失效原因分析与解决方案
SQL索引失效原因分析与解决方案
19 0
|
17天前
|
SQL 关系型数据库 MySQL
【MySQL】慢SQL分析流程
【4月更文挑战第1天】【MySQL】慢SQL分析流程
|
25天前
|
SQL JSON Kubernetes
Seata常见问题之服务端 error日志没有输出,客户端执行sql报错如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
97 0
|
2月前
|
SQL 关系型数据库 MySQL
10个SQL中常用的分析技巧
10个SQL中常用的分析技巧
|
2月前
|
SQL 开发框架 .NET
C# Linq SaveChanges()报错 You have an error in your SQL syntex
C# Linq SaveChanges()报错 You have an error in your SQL syntex
10 0
|
2月前
|
SQL 存储 关系型数据库
MySQL(终结篇二)- SQL 语句分析与优化
MySQL(终结篇二)- SQL 语句分析与优化
87 0
|
3月前
|
SQL
leetcode-SQL-550. 游戏玩法分析 IV
leetcode-SQL-550. 游戏玩法分析 IV
22 1
|
3月前
|
SQL
leetcode-SQL-1084. 销售分析III
leetcode-SQL-1084. 销售分析III
30 0