码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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 

     

    完

     

     

     

  • 相关阅读:
    iNFTnews | Web3时代,用户将拥有数据自主权
    探秘Socks5代理在跨界电商、爬虫和游戏领域的应用
    【考研数学】概率论与数理统计 —— 第七章 | 参数估计(2,参数估计量的评价、正态总体的区间估计)
    你真的了解红黑树的怎么实现的吗?
    海量数据处理
    【路径规划】基于Dijkstra实现机器人二维路径规划附完整matlab代码
    道可云元宇宙每日资讯|文旅中国元宇宙第二届生态大会即将举行
    智慧邮政:浅述视频监控与AI智能分析技术助力邮政物流智能监管
    OS-调度
    C++ 类和对象以及内存管理 练习错题总结
  • 原文地址:https://blog.csdn.net/u011039332/article/details/131990923
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号