程序Bug
、错误、异常.....,这些词汇天生与每位程序员挂钩,当一个程序出现问题时,用户第一时间想到的是这个平台的程序员不行,而身为开发者逃不开一点是:又得背锅和加班解决问题!
而MySQL
作为整个系统的后方大本营,自然也无法避免会出现错误与异常,在MySQL
内部其实定义了一系列错误码,当运行过程中发生错误,或执行语句时出现异常时,一般情况下都会向客户端返回错误码以及错误信息。
但往往很多时候有些错误咱们没见过,所以面对问题时难免有些束手无策,也正因为如此,本节将罗列
MySQL
中常见的错误码,当你碰到问题时可以直接通过错误码在此搜索,以此来定位问题出现的原因,以此进一步推导出问题的解决方案。
MySQL
的错误信息由ErrorCode、SQLState、ErrorInfo
三部分组成,即错误码、SQL
状态、错误信息三部分组成,如下:
ERROR 1045 (28000): Access denied for user 'zhuzi'@'localhost' (using password: YES)
其中1045
属于错误状态码,28000
属于SQL
状态,后面跟着的则是具体的错误信息,不过MySQL
内部大致定义了两三千个错误码,其错误码的定义位于include/mysqld_error.h、include/mysqld_ername.h
文件中,而SQLState
的定义则位于include/sql_state.h
文件中,所有的错误信息列表则位于share/errmsg.txt
文件中,因此大家感兴趣的可自行编译MySQL
源码查看。