活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      云数据库TaurusDB

      云数据库TaurusDB

        • 产品动态
        • 产品介绍
        • 产品定义
        • 常用概念
        • 产品优势和价值
        • 实例说明
        • 权限管理
        • 使用限制
        • 与其他服务的关系
        • 计费说明
        • 计费项
        • 计费模式
        • 产品价格
        • 变更配置
        • 续费
        • 到期与欠费
        • 快速入门
        • 创建实例
        • 连接实例
        • 实例连接方式简介
        • 通过DAS连接TaurusDB实例(推荐)
        • 通过内网连接TaurusDB实例
        • 内网连接实例流程
        • 设置安全组规则
        • 通过内网连接TaurusDB实例
        • 通过公网连接TaurusDB实例
        • 公网连接实例流程
        • 绑定弹性IP
        • 设置安全组规则
        • 通过公网连接TaurusDB实例
        • 用户指南
        • 计费管理
        • 续费
        • 包周期实例转按需
        • 按需实例转包周期
        • 退订包周期实例
        • 数据迁移
        • 实例生命周期管理
        • 变更实例
        • 变更实例的CPU和内存规格
        • 磁盘容量变更(包年包月)
        • 设置可维护时间段
        • 自定义列表项
        • 升级内核小版本
        • 只读节点
        • 只读节点简介
        • 创建只读节点
        • 管理只读节点
        • 只读节点升主节点
        • 删除只读节点
        • 数据安全性
        • 重置管理员密码
        • 修改实例内网安全组
        • 数据库安全设置
        • 数据备份
        • 备份类型
        • 设置自动备份策略
        • 创建手动备份
        • 导出备份信息
        • 删除手动备份
        • 数据恢复
        • 恢复方案概览
        • 将数据库实例恢复到指定时间点
        • 将备份恢复至实例
        • 连接管理
        • 绑定和解绑弹性IP
        • 修改数据库端口
        • 参数模板管理
        • 创建参数模板
        • 编辑参数模板
        • 导出参数
        • 比较参数模板
        • 查看参数修改历史
        • 复制参数模板
        • 重置参数模板
        • 应用参数模板
        • 查看参数模板应用记录
        • 修改参数模板描述
        • 删除参数模板
        • 监控指标与告警
        • 支持的监控指标
        • 查看监控指标
        • 设置告警规则
        • 设置秒级监控
        • 日志管理
        • 任务中心
        • 标签
        • 最佳实践
        • TaurusDB读写分离最佳实践
        • 常见问题
        • 产品咨询类
        • 数据库连接类
        • 连接说明类
        • 如何通过JDBC连接TaurusDB数据库
        • 绑定公网IP后无法ping通的解决方案
        • 测试连通性失败,如何排查
        • 数据库迁移类
        • 数据库权限类
        • 数据库性能类
        • 性能说明类
        • 联合索引设置不当导致慢SQL的解决办法
        • 长事务产生大量临时表导致内存超限的解决办法
        • 持锁长事务导致后续业务报等锁超时的解决办法
        • 数据库基本使用
        • 基本使用介绍类
        • 使用LOAD DATA导入本地数据
        • 备份与恢复类
        • 数据库参数修改类
        • 参数修改说明类
        • TaurusDB密码过期策略
        • 如何修改TaurusDB数据库字符集
        • 使用utf8mb4字符集存储emoji表情到TaurusDB实例
        • 网络安全类
        • 安全说明类
        • 将根证书导入Windows/Linux操作系统
        • 日志管理类
        • 版本升级类
        • 复杂操作类
        • TaurusDB数据库连接数满的排查思路
        • TaurusDB数据库实例支持的最大数据连接数是多少
        • 如何安装客户端
        • 故障排除
        • 备份恢复
        • 连接类
        • SQL类
        • 参数类
        • 性能资源类
        • 基本使用类
        • 文档下载
        • 服务协议
        • 服务等级协议
        • 服务协议
          无相关产品

          本页目录

          帮助中心云数据库TaurusDB故障排除SQL类
          SQL类
          更新时间 2025-03-27 10:41:23
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2025-03-27 10:41:23
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本节介绍了SQL类相关问题与处理方法。

          建表时timestamp字段默认值无效

          场景描述

          客户执行一个建表SQL语句失败,详细SQL语句及报错如下:

          CREATE TABLE cluster_membership 
          ( 
          ... 
          session_start TIMESTAMP DEFAULT '1970-01-01 00:00:01', 
          ... 
          );
          

          执行失败,失败原因:ERROR 1067: Invalid default value for 'session_start'

          原因分析

          表字段类型是TIMESTAMP类型,

          关于timestamp字段:MySQL会把该字段插入的值从当前时区转换成UTC时间(世界标准时间)存储,查询时,又将其从UTC时间转化为当前时区时间返回

          1. timestamp类型字段的时间范围:'1970-01-01 00:00:01' UTC -- '2038-01-19 03:14:07' UTC,详见官方文档:
          2. 使用如下命令,查看当前的时区:
          show variables like "%zone%";
          
          1. 故障场景中使用的是utc+8时区,如下图,所以timestamp字段默认值需要加8小时才是有效范围,有效支持的范围是从1970-01-01 08:00:01开始;

          图片40.png

          解决方案

          执行命令,修改timestamp字段参数默认值。

          session_start TIMESTAMP DEFAULT '1970-01-01 08:00:01',
          

          索引长度限制导致修改varchar长度失败

          场景描述

          执行alter table修改表结构失败,报错如下:

          Specified key was too long; max key length is 3072 bytes
          

          原因分析

          • 在“innodb_large_prefix”设置为off的情况下,InnoDB表的单字段索引的最大字段长度不能超过767字节,联合索引的每个字段的长度不能超过767字节,且所有字段长度合计不能超过3072字节。
          • 当“innodb_large_prefix”设置为on时,单字段索引最大长度可为3072字节,联合索引合计最大长度可为3072字节。
          • 索引长度与字符集相关。使用utf8字符集时,一个字符占用三个字节,在“innodb_large_prefix”参数设置为on情况下,索引的所有字段的长度合计最大为1072个字符。

          查看表结构如下:

          CREATE TABLE `xxxxx` ( 
          …… 
          `subscription_type` varchar(64) NOT NULL DEFAULT 'DEVICE_EXCEPTION' COMMENT '订阅类型', 
          `auth_key` varchar(255) DEFAULT '' COMMENT '签名,接口请求头会根据这个值增加token', 
          `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', 
          `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', 
          PRIMARY KEY (`id`) USING BTREE, 
          UNIQUE KEY `enterprise_id` (`subscription_type`,`enterprise_id`,`callback_url`) USING BTREE) 
          ) ENGINE=InnoDB AUTO_INCREMENT=1039 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC
          

          该表使用了utf8字符集,一个字符占用三个字节。联合索引“enterprise_id”包含了“callback_url”字段,如果执行DDL操作将“callback_url”修改为varchar(1024),会超出联合索引最大长度限制,所以报错。

          解决方案

          MySQL机制约束,建议修改索引或字段长度。

          delete大表数据后,再查询同一张表时出现慢SQL

          场景描述

          一次性删除多条宽列数据(每条记录数据长度在1GB左右),再次对同一张表进行增删改查时均执行缓慢,20分钟左右后恢复正常。

          场景案例

          1. 假定max_allowed_packet参数大小为1073741824。
          2. 创建表。
          CREATE TABLE IF NOT EXISTS zstest1  
          (  
          id int  PRIMARY KEY not null,  
          c_longtext LONGTEXT  
          ); 
          
          1. 向表中插入数据。
          insert into zstest1 values(1, repeat('a', 1073741800));  
          insert into zstest1 values(2, repeat('a', 1073741800));  
          insert into zstest1 values(3, repeat('a', 1073741800));  
          insert into zstest1 values(4, repeat('a', 1073741800));  
          insert into zstest1 values(5, repeat('a', 1073741800));  
          insert into zstest1 values(6, repeat('a', 1073741800));  
          insert into zstest1 values(7, repeat('a', 1073741800));  
          insert into zstest1 values(8, repeat('a', 1073741800));  
          insert into zstest1 values(9, repeat('a', 1073741800));  
          insert into zstest1 values(10, repeat('a', 1073741800)); 
          
          1. 删除数据。
          delete from zstest1;
          
          1. 执行查询语句。
          select id from zstest1;    //执行缓慢
          

          原因分析

          执行完delete操作后,后台purge线程会去清理标记为delete mark的记录。由于当前删除的数据量较大,purge遍历释放page的过程中会去获取page所在索引根节点的SX锁,导致select语句无法获取到根节点page的rw-lock,一直在等待。

          解决方案

          • 该场景为正常现象,等待purge操作完成后即可恢复正常。
          • 扩大实例规格,提高purge效率。
          • 调整优化业务,避免突然删除大量数据。如果需要删除表中所有数据,建议使用 truncate table 。

          更新emoji表情数据报错Error 1366

          场景描述

          业务插入或更新带有emoji表情的数据时,报错Error 1366。

          java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xB0\xE5\xA4...' for column 'username' at row 1 ; 
          uncategorized SQLException for SQL []; SQL state [HY000]; error code [1366];   
          Incorrect string value: '\xF0\x9F\x90\xB0\xE5\xA4...' for column 'username' at row 1; 
          

          原因分析

          原因是字符集配置有误:

          • emoji表情为特殊字符,需要4字节字符集存储。
          • 该问题场景下,数据库字符集为utf-8,它最多支持3个字节;utf8mb4才是支持4个字节的字符集;

          解决方案

          1. 将存储emoji表情的字段的字符集修改为utf8mb4。

          如果涉及的表和字段比较多,建议把对应表、数据库的编码也设置为utf8mb4。参考命令:

          ALTER DATABASE database_name CHARACTER SET= utf8mb4 COLLATE= utf8mb4_unicode_ci;

          ALTER TABLE table_name CONVERTTOCHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

          ALTER TABLE table_name MODIFY 字段名 VARCHAR(128) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;

          1. 若对应字段的字符集已经是utf8mb4,则为客户端或MySQL服务端字符集转换问题,将客户端和MySQL服务端的字符集都设置为utf8mb4。

          存储过程和相关表字符集不一致导致执行缓慢

          场景描述

          TaurusDB存储过程执行很慢,处理少量数据耗时1min以上,而单独执行存储过程中的SQL语句却很快。

          原因分析

          存储过程和相关表、库的字符集不一致,导致查询结果存在大量字符转换,从而执行缓慢。

          排查过程:

          使用如下命令查看存储过程和相关表的定义,观察存储过程和表的字符集是否一致。

          SHOW CREATE PROCEDURE xxx;  
          SHOW CREATE TABLE xxx 
          

          示例:

          mysql> SHOW CREATE PROCEDURE testProc \G  
          *************************** 1. row ***************************   
          Procedure: showstuscore  
          sql_mode: STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION  
          Create Procedure: xxx  
          character_set_client: utf8mb4  
          collation_connection: utf8mb4_general_ci  
          Database Collation: utf8_general_ci  
          1 row in set (0.01 sec) 
          

          可以看出,上述存储过程collation为utf8mb4_general_ci,而所在库collation默认为utf8_general_ci,collation值不一致,容易导致性能问题。

          解决方案

          将存储过程和相关表、库的字符集改成一致后,执行缓慢问题解决。

          报错ERROR [1412]的解决方法

          场景描述

          连接TaurusDB执行SQL时,出现如下报错:

          ERROR[1412]:Table definition has changed, please retry transaction``
          

          原因分析

          启动一致性快照事务后,其他会话(session)执行DDL语句导致。问题复现步骤:

          1. 会话1启动一致性快照事务。

          图片41.png

          1. 会话2执行DDL操作,修改表结构。

          图片42.png

          1. 会话1执行普通的查询语句。

          图片43.png

          也可以通过Binlog或者审计日志,分析业务侧是否有同一个表DDL和一致性快照事务一起执行的情况。

          解决方案

          若经排查,是由上述原因引起的报错,需要业务侧避免同一个表的DDL语句和一致性快照事务同时执行。

          存在外键的表无法删除

          场景描述

          删除MySQL表时,如果表中有外键(foreign key),会出现如下报错,且和用户权限无关:

          ERROR 1451 (23000): Cannot delete or update parent row: a foreign key constraint fails …………
          

          原因分析

          这个表和其他表有外键关系,在MySQL中,设置了外键关联,会造成无法更新或删除数据,避免破坏外键的约束。

          可以通过设置变量FOREIGN_KEY_CHECKS值为off,来关闭上述机制,详见官方文档。

          解决方案

          通过设置变量FOREIGN_KEY_CHECKS值为off,来关闭上述机制:

          set session foreign_key_checks=off;  
          drop table table_name;
          

          GROUP_CONCAT结果不符合预期

          场景描述

          SQL语句中使用GROUP_CONCAT()函数时,出现结果不符合预期的情况。

          原因分析

          GROUP_CONCAT()函数返回一个字符串结果,该结果由分组中的值连接组合而成。需要注意的是:这个函数的结果长度是有限制的,由group_concat_max_len参数决定。

          示例:

          图片44.png

          图片45.png

          解决方案

          调整group_concat_max_len参数值,适配GROUP_CONCAT()函数的结果长度。

          创建二级索引报错Too many keys specified

          场景描述

          创建二级索引失败,报错:Too many keys specified; max 64 keys allowed.

          故障分析

          MySQL对InnoDB每张表的二级索引的数量上限有限制,限制上限为64个,超过限制会报错“Too many keys specified; max 64 keys allowed”。详见官方文档。

          图片46.png

          解决方案

          MySQL机制导致,建议优化业务,避免单表创建过多索引。

          说明

          InnoDB表的其他限制:

          1. 一个表最多可以包含1017列(包含虚拟生成列)。

          2. InnoDB对于使用DYNAMIC或COMPRESSED行格式的表,索引键前缀长度限制为3072字节。

          3. 多列索引最多允许16列,超过限制会报错。

          distinct与group by优化

          场景描述

          使用distinct或group by的语句执行比较慢。

          原因分析

          大部分情况下,distinct是可以转化成等价的group by语句。在MySQL中,distinct关键字的主要作用就是去重过滤。

          distinct进行去重的原理是先进行分组操作,然后从每组数据中取一条返回给客户端,分组时有两种场景:

          • distinct的字段全部包含于同一索引:该场景下MySQL直接使用索引对数据进行分组,然后从每组数据中取一条数据返回。
          • distinct字段未全部包含于索引:该场景下索引不能满足去重分组需要,会用到临时表(首先将满足条件的数据写入临时表中,然后在临时表中对数据进行分组,返回合适的数据)。因为使用临时表会带来额外的开销,所以一般情况下性能会较差。

          综上,在使用distinct或group by的时候,尽量在合理的情况下设置可以包含所有依赖字段的索引,优化示例:

          • 没有合适索引,导致需要用到临时表。

          图片47.png

          图片48.png

          • 有合适的索引,不会使用临时表,直接走索引。

          图片49.png

          图片50.png

          图片51.png

          解决方案

          在使用distinct或group by的时候,尽量在合理的情况下,创建可以包含所有依赖字段的索引。

          为什么有时候用浮点数做等值比较查不到数据

          原因分析

          浮点数的等值比较问题是一种常见的浮点数问题。因为在计算机中,浮点数存储的是近似值而不是精确值,所以等值比较、数学运算等场景很容易出现预期外的情况。

          MySQL中涉及浮点数的类型有float和double。如下示例中遇到的问题:

          图片52.png

          解决方案

          1. 使用精度的方法处理,使用字段与数值的差值的绝对值小于可接受的精度的方法。示例:

          图片53.png

          1. 使用定点数类型(DECIMAL)取代浮点数类型,示例:

          图片54.png

          表空间膨胀问题

          场景描述

          在使用TaurusDB过程中,经常遇到表空间膨胀问题,例如:表中只有11774行数据,表空间却占用49.9GB,将该表导出到本地只有800M。

          原因分析

          场景1:DRS全量迁移阶段并行迁移导致

          原因:DRS在全量迁移阶段,为了保证迁移性能和传输的稳定性,采用了行级并行的迁移方式。当源端数据紧凑情况下,通过DRS迁移到云上TaurusDB后,可能会出现数据膨胀现象,使得磁盘空间使用远大于源端。

          场景2:大量删除操作后在表空间留下碎片所致

          原因:当删除数据时,mysql并不会回收被删除数据占据的存储空间,而只做标记删除,尝试供后续复用,等新的数据来填补相应空间,如果短时间内没有数据来填补这些空间,就造成了表空间膨胀,形成大量碎片;

          可以通过如下SQL语句,查询某个表详细信息,DATA_FREE字段表示表空间碎片大小:

          select * from information_schema.tables where table_schema='db_name' and table_name = 'table_name'\G
          

          图片55.png

          解决方案

          针对表空间膨胀的问题,可以进行表空间优化整理,从而缩小空间,执行如下SQL命令:

          optimize table table_name;
          
          说明

          optimize table命令会有短暂锁表操作,所以进行表空间优化时,建议避开业务高峰期,避免影响正常业务的进行。

          MySQL创建用户提示服务器错误(ERROR 1396)

          场景描述

          用户帐号在控制台界面上消失,创建不了同名帐号,但使用帐号名和旧密码还能连接。

          创建用户失败的报错信息:

          ERROR 1396 (HY000): Operation CREATE USER failed for xxx。
          

          问题分析

          1. 查询确认后,发现消失的账号在mysql.user表中已经被删除,故控制台不再显示;
          2. 使用帐号名和旧密码还能连接登录,说明使用的是delete from mysql.user方式删除用户。使用这种方式删除用户,需要执行flush privileges后,才会清理内存中相关数据,该用户才彻底不能登录。
          3. 使用delete from mysql.user方式删除用户,无法重新创建相应账户(报错ERROR 1396),原因是内存中相关数据仍然存在。

          图片56.png

          正确删除用户的方式为drop user语句,注意以下几点:

          • drop user语句可用于删除一个或多个用户,并撤销其权限。
          • 使用drop user语句必须拥有MySQL数据库的DELETE权限或全局CREATE USER权限。
          • 在drop user语句的使用中,若没有明确地给出帐户的主机名,则该主机名默认为“%”。

          故障场景恢复示例:

          创建用户后用delete删除用户,再创建同名用户时报错ERROR 1396。通过执行flush privileges后,可正常创建同名用户。

          图片57.png

          解决方案

          • 方式一(推荐):在业务低峰期,使用管理员帐户执行drop user user_name删除用户,再重新创建该用户,修复该问题。
          • 方式二:在业务低峰期,使用管理员帐户执行flush privileges后,再重新创建该用户,修复该问题。建议开启数据库全量sql洞察功能,便于分析是哪个客户端删除了用户。

          执行alter table xxx discard/import tablespace报错

          场景描述

          在TaurusDB中执行alter table xxx discard/import tablespace会报错:ERROR 3658 (HY000): Feature IMPORT/DISCARD TABLESPACE is unsupported ().

          原因分析

          alter table xxx discard/import tablespace是社区MySQL一种基于本地.ibd的表空间文件物理的做数据表内容替换(多用于数据迁移、备份恢复等)的方法。

          TaurusDB是存储计算分离架构,实际数据存储于共享存储上,本地没有.ibd文件,所以不支持相应的物理操作。

          解决方案

          使用其他如导入导出、DRS同步、备份恢复等方式做数据表内容的替换。

          数据库报错Native error 1461的解决方案

          场景描述

          MySQL用户通常在并发读写、大批量插入sql语句或数据迁移等场景出现如下报错信息:

          mysql_stmt_prepare failed! error(1461)Can't create more than max_prepared_stmt_count statements (current value: 16382)

          故障分析

          “max_prepared_stmt_count”的取值范围为0~1048576,默认为“16382”,该参数限制了同一时间在mysqld上所有session中prepared语句的上限,用户业务超过了该参数当前值的范围。

          解决方案

          请您调大“max_prepared_stmt_count”参数的取值,建议调整为“65535”。

          创建表失败报错Row size too large的解决方案

          场景描述

          MySQL用户创建表失败,出现如下报错信息:

          Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

          故障分析

          “varchar” 的字段总和超过了65535,导致创建表失败。

          解决方案

          1. 缩减长度,如下所示。
          CREATE TABLE t1 (a VARCHAR(10000),b VARCHAR(10000),c VARCHAR(10000),d VARCHAR(10000),e VARCHAR(10000),f VARCHAR(10000) ) ENGINE=MyISAM  CHARACTER SET latin1;
          
          1. 请参考官方文档修改一个字段为TEXT类型。
          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  连接类
          下一篇 :  参数类
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明