当前位置:嗨网首页>书籍在线阅读

02-MySQL服务器端错误代码和消息

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

17.1 MySQL服务器端错误代码和消息

本节视频教学录像:12分钟

MySQL 5.6是根据MySQL安装目录下的share/errmsg.txt文件来生成include/mysqld_err or.h和include/mysqld_ername.h中的错误定义的。另外,SQLSTATE 的值也是根据share/errmsg.txt文件中的内容来生成include/sql_state.h的。

默认情况下服务器出错代码都是以1开头的,比如: 1371 SQLSTATE: HY000 (ER_RELAY _LOG_FAIL),该消息的错误代码为1371,该消息表示“清除旧中继日志失败”。

在查看share/errmsg.txt文件时会发现消息信息中包含%d、%ld和%s,%d和%ld代表数值,%s代表字符串,在显示具体信息时它们将被消息值取代。比如:错误代码为1146的错误信息在share/errmsg.txt显示为“Table '%-.192s.%-.192s' doesn't exist”,即“表' '%-.192s.%-.192s'’不存在”。其中,“%-.192s”可表示左对齐192个字符宽度,可理解为此处输出为占位字符串,在显示具体信息时回避字符串消息替换,在附录A中直接表示为“表'%s.%s'不存在”,下面举例说明。

01 mysql> show tables; 02 +----------------+ 03 | Tables_in_xscj | 04 +----------------+ 05|kc | 06|xs | 07|xs_kc | 08|xs_kc_st | 09 +----------------+ 10 4 rows in set 11 mysql> select from kc; 12 +--------+----------------+----------+------+------+ 13|课程号|课程名 |开课学期|学时|学分| 14 +--------+----------------+----------+------+------+ 15|101 |计算机基础 | 1| 80| 5| 16|102 |程序设计与语言| 2| 68| 4| 17|206 |离散数学 | 4| 68| 4| 18|208 |数据结构 | 5| 68| 4| 19|209 |操作系统 | 6| 68| 4| 20|210 |计算机原理 | 5| 85| 5| 21|212 |数据库原理 | 7| 68| 4| 22|301 |计算机网络 | 7| 51| 3| 23|302 |软件工程 | 7| 51| 3| 24 +--------+----------------+----------+------+------+ 25 9 rows in set 26 mysql> select from kcx; 27 1146 - Table 'xscj.kcx' doesn't exist

在第01行中查看存在表“kc”,11行查看表kc中所有记录,26行查看不存在的表“kcx”,27行提示服务器错误“1146 - Table 'xscj.kcx' doesn't exist”,对照附录A中服务器错误代码1146,发现其中的%s已经被xscj和kcx替换掉了。