MySQL:是否可以缩短错误消息?

时间:2014-04-23 14:00:14

标签: php mysql syntax-error mysql-error-1064

我听过很多人抱怨这个,这是理所当然的。许多MySQL错误消息都非常长:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near... 

在仅向您显示该字符串的前半部分的环境中,这尤其令人讨厌。所以问题是:是否有可能获得该字符串的较短版本?像Syntax error near...这样的东西 - 这真的是那个消息的多汁部分。

2 个答案:

答案 0 :(得分:21)

注意:此处提供的步骤仅适用于Linux,您可能正在使用其他操作系统,然后使用相应的编辑器和命令

MySQL在/usr/share/mysql/english/errmsg.sys存储错误消息文件,其中english是您要使用的语言。

注意:您需要拥有超级用户权限

步骤1。备份现有的errmsg.sys(以便在出现问题时可以恢复

  $sudo cp /usr/share/mysql/english/errmsg.sys ~/errmsg.sys.bkp

第2步。/usr/share/mysql/english/errmsg.sys编辑器中打开vi

$sudo vi /usr/share/mysql/english/errmsg.sys

第3步。在errmsg.sys中搜索“你有一个”

in vi editor for searching try this way-->  /You have an [press enter]

它会让你看到屏幕截图中显示的字符串“你有一个错误......” enter image description here

第4步。根据需要编辑该错误消息。我删除了字符串You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the并保留了right syntax to use

检查以下屏幕截图。 enter image description here

第5步。保存并退出。

in vi editor to save and exit-->   :x! [press enter]     here ! is added to override read-only file

第6步。重新启动mysql服务。

$sudo mysql restart

第7步。检查错误消息(我正在检查phpMyAdmin)

enter image description here

在此回答中,我更新了错误消息You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near...,同样您也可以更新其他标准错误消息。

希望它有所帮助! :d

答案 1 :(得分:0)

Windows解决方案:

这是问题吗?

MySQL语法错误消息的开头是一长串基本上是无用的文本:

“您的SQL语法有误;请查看与您的MySQL服务器版本相对应的手册以使用正确的语法”

事实上,由于时间太长,因此错误显示在一行上,因此很难在MySQL的Workbench程序中使用:

MySQL Workbench long error message

如您所见,消息的实际内容在右边的某个地方,我们无法使用。要获得整个错误,唯一的方法是左击消息以将其选中,然后右键单击它并选择“复制响应”,然后将其粘贴到某处以查看完整的消息。 这被普遍认为是不良的用户体验。

是的,这是个问题。

我们如何解决?嗯,有一种正确的方法(修改源代码并进行重建,请参见instructions here),并且有一种快速的方法,我只建议用于开发机器,因为虽然可能没有副作用,谁真的知道?

这是快捷的方法:

这是仅适用于Windows的解决方案。类似的东西可能在Mac上也可以,但是我不知道。

您将需要一个十六进制编辑器。像HxD这样的免费软件或像Frhed这样的开源软件都可以使用。

执行以下步骤:

  1. 为防万一,首先在MySQL安装目录中备份文件share\english\errmsg.sys
  2. 在十六进制编辑器中,打开errmsg.sys文件。
  3. 搜索字符串“ You have an error
  4. 在十六进制编辑器的右侧,从消息的第一个字母开始,然后键入现有文本。我用一个简单的“语法错误”替换了我的文字
  5. 在您收到新消息后,立即通过切换回十六进制编辑器的左侧并在其中输入00来添加十六进制字符00。 ASCII NULL字符告诉MySQL消息已完成。之后,您可以忽略所有内容,如果需要,可以将其替换为空格。 (我曾经)。

这是它的外观:(为您的方便而突出显示)

Hex editing MySQL errmsg.sys

在我的编辑器中,NULL字符作为句点显示在右侧。别让那让您感到困惑。

  1. 保存文件
  2. 重新启动MySQL服务

这时,您的语法错误消息会短得多。唯一的问题是,对于此错误,您不能在消息后删除“ near”一词。因此,在本例中,该消息现在将是“附近语法错误”等。

如果您做对了所有事情,这应该是这样:

MySQL Workbench short error message

这是原始作品,第一次在这里发布。希望这会有所帮助!