当前位置: 首页 > news >正文

46 mysql 客户端拿不到具体的错误信息

前言

这是最近碰到的一个问题 

同样的一个 环境的问题, 在正常的 mysql 环境会返回 具体的错误信息, 然后 在我的另外一个环境里面 只能返回一些 unknown error 之类的 十分抽象的环境

然后 我们这里 来看一下 具体的情况 我们这里从 错误的环境 往前推导

来查看 并解决这个问题

 

 

错误信息的调试

这里构造的问题是一个 Table space already exists 的问题, 在重命名表名的时候, 将表名更新为 另外一个存在 ibd 的表名, 这时候 就会抛出如下异常

 

根据错误码 查询错误信息的方式如下, 将两个 section flatmap 到 errmsgs 的错误信息序列, 然后计算偏移 获取错误信息模板, 比如 我们这里的 1025 获取到的错误信息为 “”

然后 下面直接响应的 “Unknown error $errorCode”

941092146db24e2090f6455856325118.png

 

获取到错误信息的时候, 根据 错误码以及错误信息模板 以及上下文 格式化完整的错误信息的地方如下, 这里没有获取到错误信息模板, 直接响应的是 “Unknown error $errorCode”

b9993324ddca41f88f9c1fd089568e05.png

 

然后 客户端拿到的信息如下

3ff51f117ee74313b0e165a70a402dd3.png 

 

这里两个 section 标记的是 错误码 的两个分区

第一个 section 是 [1000 – 1887], 第二个 section 是 [3000 – 3230]

f80cd003fe064fa482ca88ac536af982.png

 

 

错误信息 errmsg.sys 的初始化  

错误信息的初始化如下, 默认是在 “/usr/local/mysql/share/errmsg.sys” 的地方查询错误信息模板, 然后 在这里没有 

然后 从如上代码可以看到 错误信息 的根目录是在 lc_message_dir 的配置中

然后解决方式可以通过 复制 errmsg.sys 到指定的默认位置, 或者更新 lc_message_dir 的配置, 配置到 mysql 代码中错误信息的目录, 我们这里通过配置解决问题 

e437f1b04537498389b5ec127de2552a.png

 

配置 lc_messages_dir 如下 

5b87949a376e4646a3c534e330e07e99.png 

 

现在能够 正确读取到错误信息了 

389e0166711047a486eaa2a4d4f45c4b.png 

 

错误信息国际化配置 

通过 lc_messages_dir 和 lc_messages 来进行配置, 后者配置指定的是 语言

也可以通过 launage 来执行完整的路径, 但是 不推荐

f90ce41cf1074f30958914cebb9f81c7.png

 

路径中的 Japanese 是通过 locale 进行关联的, 这部分内容参见 sql_locale.cc

fadacceeee5446089b419620b5a1aa91.png 

国际化之后 错误信息如下

b7daf506b9e44d848b40fbeb820f33b5.png 

在配置不正确的情况下, 启动 mysql 会有如下日志, 提示的就是 没有找到错误信息的相关配置

216dbc9b267a40208855cdca79dd16ed.png 

 

 

 

 

http://www.lryc.cn/news/399704.html

相关文章:

  • Java语言程序设计——篇三(2)
  • 如何实现一个分布式锁
  • Ajax从零到实战
  • 编程参考 - 在C++移动构造函数声明中使用noexcept
  • Vue2/Vue3实现全局/局部添加防篡改水印的效果。删除元素无效!更改元素属性无效!支持图片、元素、视频等等。
  • GuLi商城-商品服务-API-属性分组-获取分类属性分组
  • 安全测试理论
  • 序列化和反序列化
  • OpenCV中使用Canny算法在图像中查找边缘
  • 基于springboot+vue+uniapp的机电公司管理信息系统
  • 电子期刊制作实战教程:从零开始制作
  • 11.FreeRTOS_事件组
  • Python爬虫-爬取三国演义文本数据-bs4
  • html5——列表、表格
  • 【Python字符串攻略】:玩转文字,编织程序的叙事艺术
  • element form表单中密码框被自动赋值,并默认背景色为白色,手动输值后背景色才是自己配置的背景色,与表单的自动填充有关
  • 【UE5.1 角色练习】15-枪械射击——子弹发射物
  • Zynq7000系列FPGA中的DMA控制器的编程限制
  • 超简易高效的 AI绘图工具—与sd-webui一致界面,6G显存最高提升75%出图速率!(附安装包)
  • ArduPilot开源代码之OpticalFlow_backend
  • 设计模式探索:适配器模式
  • OpenCV 寻找棋盘格角点及绘制
  • 【深度学习】PyTorch深度学习笔记02-线性模型
  • 10.FreeRTOS_互斥量
  • EtherCAT总线冗余让制造更安全更可靠更智能
  • Android IdleHandler源码分析
  • Mac安装stable diffusion 工具
  • CVE-2024-6387Open SSH漏洞彻底解决举措(含踩坑内容)
  • python的简单爬取
  • 【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第60集-agent训练资讯APP重点推荐AI资讯内容(含视频)