本文介紹的MySQL數據庫的出錯代碼表,依據MySQL數據庫頭文件mysql/include/MySQLd_error.h整理而成。詳細內容請大家參考下文:
1005:創建表失敗
1006:創建數據庫失敗
1007:數據庫已存在,創建數據庫失敗
1008:數據庫不存在,刪除數據庫失敗
1009:不能刪除數據庫文件導致刪除數據庫失敗
1010:不能刪除數據目錄導致刪除數據庫失敗
1011:刪除數據庫文件失敗
1012:不能讀取系統表中的記錄
1020:記錄已被其他用戶修改
1021:硬盤剩余空間不足,請加大硬盤可用空間
1022:關鍵字重復,更改記錄失敗
1023:關閉時發生錯誤
1024:讀文件錯誤
1025:更改名字時發生錯誤
1026:寫文件錯誤
1032:記錄不存在
1036:數據表是只讀的,不能對它進行修改
1037:系統內存不足,請重啟數據庫或重啟服務器
1038:用於排序的內存不足,請增大排序緩沖區
1040:已到達數據庫的最大連接數,請加大數據庫可用連接數
1041:系統內存不足
1042:無效的主機名
1043:無效連接
1044:當前用戶沒有訪問數據庫的權限
1045:不能連接數據庫,用戶名或密碼錯誤
1048:字段不能為空
1049:數據庫不存在
1050:數據表已存在
1051:數據表不存在
1054:字段不存在
1065:無效的SQL語句,SQL語句為空
1081:不能建立Socket連接
1114:數據表已滿,不能容納任何記錄
1116:打開的數據表太多
1129:數據庫出現異常,請重啟數據庫
1130:連接數據庫失敗,沒有連接數據庫的權限
1133:數據庫用戶不存在
1141:當前用戶無權訪問數據庫
1142:當前用戶無權訪問數據表
1143:當前用戶無權訪問數據表中的字段
1146:數據表不存在
1147:未定義用戶對數據表的訪問權限
1149:SQL語句語法錯誤
1158:網絡錯誤,出現讀錯誤,請檢查網絡連接狀況
1159:網絡錯誤,讀超時,請檢查網絡連接狀況
1160:網絡錯誤,出現寫錯誤,請檢查網絡連接狀況
1161:網絡錯誤,寫超時,請檢查網絡連接狀況
1062:字段值重復,入庫失敗
1169:字段值重復,更新記錄失敗
1177:打開數據表失敗
1180:提交事務失敗
1181:回滾事務失敗
1203:當前用戶和數據庫建立的連接已到達數據庫的最大連接數,請增大可用的數據庫連接數或重啟數據庫
1205:加鎖超時
1211:當前用戶沒有創建用戶的權限
1216:外鍵約束檢查失敗,更新子表記錄失敗
1217:外鍵約束檢查失敗,刪除或修改主表記錄失敗
1226:當前用戶使用的資源已超過所允許的資源,請重啟數據庫或重啟服務器
1227:權限不足,您無權進行此操作
1235:MySQL版本過低,不具有本功能
附帶一個Java類,可以把MySQL的出錯代碼翻譯成對應的出錯信息:
import Java.util.*;
public class MyErrorContext
{
public static class MyError
{
int errno;
String szErrorDesc;
public MyError(int errno, String errorDesc)
{
this.errno = errno;
this.szErrorDesc = errorDesc;
}
public int getErrorNo()
{
return errno;
}
public String getErrorDesc()
{
return szErrorDesc;
}
}
public static final int DB_ER_CANT_CREATE_TABLE = 1005; //創建表失敗
public static final int DB_ER_CANT_CREATE_DB = 1006; //創建數據庫失敗
public static final int DB_ER_DB_CREATE_EXISTS = 1007; //數據庫已存在,創建數據庫失敗
public static final int DB_ER_DB_DROP_EXISTS = 1008; //數據庫不存在,刪除數據庫失敗
public static final int DB_ER_DB_DROP_DELETE = 1009; //不能刪除數據庫文件導致刪除數據庫失敗
public static final int DB_ER_DB_DROP_RMDIR = 1010; //不能刪除數據目錄導致刪除數據庫失敗
public static final int DB_ER_CANT_DELETE_FILE = 1011; //刪除數據庫文件失敗
public static final int DB_ER_CANT_FIND_SYSTEM_REC = 1012; //不能讀取系統表中的記錄
public static final int DB_ER_CHECKREAD = 1020; //記錄已被其他用戶修改
public static final int DB_ER_DISK_FULL = 1021; //硬盤剩余空間不足,請加大硬盤可用空間
public static final int DB_ER_DUP_KEY = 1022; //關鍵字重復,更改記錄失敗
public static final int DB_ER_ERROR_ON_CLOSE = 1023; //關閉時發生錯誤
public static final int DB_ER_ERROR_ON_READ = 1024; //讀文件錯誤
public static final int DB_ER_ERROR_ON_RENAME = 1025; //更改名字時發生錯誤
public static final int DB_ER_ERROR_ON_WRITE = 1026; //寫文件錯誤
public static final int DB_ER_KEY_NOT_FOUND = 1032; //記錄不存在
public static final int DB_ER_OPEN_AS_READONLY = 1036; //數據表是只讀的,不能對它進行修改
public static final int DB_ER_OUTOFMEMORY = 1037; //系統內存不足,請重啟數據庫或重啟服務器
public static final int DB_ER_OUT_OF_SORTMEMORY = 1038; //用於排序的內存不足,請增大排序緩沖區
public static final int DB_ER_CON_COUNT_ERROR = 1040; //已到達數據庫的最大連接數,請加大數據庫可用連接數
public static final int DB_ER_OUT_OF_RESOURCES = 1041; //系統內存不足
public static final int DB_ER_BAD_HOST_ERROR = 1042; //無效的主機名
public static final int DB_ER_HANDSHAKE_ERROR = 1043; //無效連接
public static final int DB_ER_DBAccess_DENIED_ERROR = 1044; //當前用戶沒有訪問數據庫的權限
public static final int DB_ER_Access_DENIED_ERROR = 1045; //不能連接數據庫,用戶名或密碼錯誤
public static final int DB_ER_BAD_NULL_ERROR = 1048; //字段不能為空
public static final int DB_ER_BAD_DB_ERROR = 1049; //數據庫不存在
public static final int DB_ER_TABLE_EXISTS_ERROR = 1050; //數據表已存在
public static final int DB_ER_BAD_TABLE_ERROR = 1051; //數據表不存在
public static final int DB_ER_BAD_FIELD_ERROR = 1054; //字段不存在
public static final int DB_ER_EMPTY_QUERY = 1065; //無效的SQL語句,SQL語句為空
public static final int DB_ER_IPSOCK_ERROR = 1081; //不能建立Socket連接
public static final int DB_ER_RECORD_FILE_FULL = 1114; //數據表已滿,不能容納任何記錄
public static final int DB_ER_TOO_MANY_TABLES = 1116; //打開的數據表太多
public static final int DB_ER_HOST_IS_BLOCKED = 1129; //數據庫出現異常,請重啟數據庫
public static final int DB_ER_HOST_NOT_PRIVILEGED = 1130; //連接數據庫失敗,沒有連接數據庫的權限
public static final int DB_ER_PASSWord_NO_MATCH = 1133; //數據庫用戶不存在
public static final int DB_ER_NONEXISTING_GRANT = 1141; //當前用戶無權訪問數據庫
public static final int DB_ER_TABLEAccess_DENIED_ERROR = 1142; //當前用戶無權訪問數據表
public static final int DB_ER_COLUMNAccess_DENIED_ERROR = 1143; //當前用戶無權訪問數據表中的字段
public static final int DB_ER_NO_SUCH_TABLE = 1146; //數據表不存在
public static final int DB_ER_NONEXISTING_TABLE_GRANT = 1147; //未定義用戶對數據表的訪問權限
public static final int DB_ER_SYNTAX_ERROR = 1149; //SQL語句語法錯誤
public static final int DB_ER_NET_READ_ERROR = 1158; //網絡錯誤,出現讀錯誤,請檢查網絡連接狀況
public static final int DB_ER_NET_READ_INTERRUPTED = 1159; //網絡錯誤,讀超時,請檢查網絡連接狀況
public static final int DB_ER_NET_ERROR_ON_WRITE = 1160; //網絡錯誤,出現寫錯誤,請檢查網絡連接狀況
public static final int DB_ER_NET_WRITE_INTERRUPTED = 1161; //網絡錯誤,寫超時,請檢查網絡連接狀況
public static final int DB_ER_DUP_ENTRY = 1062; //字段值重復,入庫失敗
public static final int DB_ER_DUP_UNIQUE = 1169; //字段值重復,更新記錄失敗
public static final int DB_ER_CHECK_NO_SUCH_TABLE = 1177; //打開數據表失敗
public static final int DB_ER_ERROR_DURING_COMMIT = 1180; //提交事務失敗
public static final int DB_ER_ERROR_DURING_ROLLBACK = 1181; //回滾事務失敗
public static final int DB_ER_TOO_MANY_USER_CONNECTIONS = 1203; //當前用戶和數據庫建立的連接已到達數據庫的最大連接數,請增大可用的數據庫連接數或重啟數據庫
public static final int DB_ER_LOCK_WAIT_TIMEOUT = 1205; //加鎖超時
public static final int DB_ER_NO_PERMISSION_TO_CREATE_USER = 1211; //當前用戶沒有創建用戶的權限
public static final int DB_ER_NO_REFERENCED_ROW = 1216; //外鍵約束檢查失敗,更新子表記錄失敗
public static final int DB_ER_ROW_IS_REFERENCED = 1217; //外鍵約束檢查失敗,刪除或修改主表記錄失敗
public static final int DB_ER_USER_LIMIT_REACHED = 1226; //當前用戶使用的資源已超過所允許的資源,請重啟數據庫或重啟服務器
public static final int DB_ER_SPECIFIC_Access_DENIED_ERROR = 1227; //權限不足,您無權進行此操作
public static final int DB_ER_NOT_SUPPORTED_YET = 1235; //MySQL版本過低,不具有本功能
private static final MyError[] errormap =
{
new MyError(DB_ER_CANT_CREATE_TABLE ,"創建表失敗"),
new MyError(DB_ER_CANT_CREATE_DB ,"創建數據庫失敗"),
new MyError(DB_ER_DB_CREATE_EXISTS ,"數據庫已存在,創建數據庫失敗"),
new MyError(DB_ER_DB_DROP_EXISTS ,"數據庫不存在,刪除數據庫失敗"),
new MyError(DB_ER_DB_DROP_DELETE ,"不能刪除數據庫文件導致刪除數據庫失敗"),
new MyError(DB_ER_DB_DROP_RMDIR ,"不能刪除數據目錄導致刪除數據庫失敗"),
new MyError(DB_ER_CANT_DELETE_FILE ,"刪除數據庫文件失敗"),
new MyError(DB_ER_CANT_FIND_SYSTEM_REC ,"不能讀取系統表中的記錄"),
new MyError(DB_ER_CHECKREAD ,"記錄已被其他用戶修改"),
new MyError(DB_ER_DISK_FULL ,"硬盤剩余空間不足,請加大硬盤可用空間"),
new MyError(DB_ER_DUP_KEY ,"關鍵字重復,更改記錄失敗"),
new MyError(DB_ER_ERROR_ON_CLOSE ,"關閉時發生錯誤"),
new MyError(DB_ER_ERROR_ON_READ ,"讀文件錯誤"),
new MyError(DB_ER_ERROR_ON_RENAME ,"更改名字時發生錯誤"),
new MyError(DB_ER_ERROR_ON_WRITE ,"寫文件錯誤"),
new MyError(DB_ER_KEY_NOT_FOUND ,"記錄不存在"),
new MyError(DB_ER_OPEN_AS_READONLY ,"數據表是只讀的,不能對它進行修改"),
new MyError(DB_ER_OUTOFMEMORY ,"系統內存不足,請重啟數據庫或重啟服務器"),
new MyError(DB_ER_OUT_OF_SORTMEMORY ,"用於排序的內存不足,請增大排序緩沖區"),
new MyError(DB_ER_CON_COUNT_ERROR ,"已到達數據庫的最大連接數,請加大數據庫可用連接數"),
new MyError(DB_ER_OUT_OF_RESOURCES ,"系統內存不足"),
new MyError(DB_ER_BAD_HOST_ERROR ,"無效的主機名"),
new MyError(DB_ER_HANDSHAKE_ERROR ,"無效連接"),
new MyError(DB_ER_DBAccess_DENIED_ERROR ,"當前用戶沒有訪問數據庫的權限"),
new MyError(DB_ER_Access_DENIED_ERROR ,"不能連接數據庫,用戶名或密碼錯誤"),
new MyError(DB_ER_BAD_NULL_ERROR ,"字段不能為空"),
new MyError(DB_ER_BAD_DB_ERROR ,"數據庫不存在"),
new MyError(DB_ER_TABLE_EXISTS_ERROR ,"數據表已存在"),
new MyError(DB_ER_BAD_TABLE_ERROR ,"數據表不存在"),
new MyError(DB_ER_BAD_FIELD_ERROR ,"字段不存在"),
new MyError(DB_ER_EMPTY_QUERY ,"無效的SQL語句,SQL語句為空"),
new MyError(DB_ER_IPSOCK_ERROR ,"不能建立Socket連接"),
new MyError(DB_ER_RECORD_FILE_FULL ,"數據表已滿,不能容納任何記錄"),
new MyError(DB_ER_TOO_MANY_TABLES ,"打開的數據表太多"),
new MyError(DB_ER_HOST_IS_BLOCKED ,"數據庫出現異常,請重啟數據庫"),
new MyError(DB_ER_HOST_NOT_PRIVILEGED ,"連接數據庫失敗,沒有連接數據庫的權限"),
new MyError(DB_ER_PASSWord_NO_MATCH ,"數據庫用戶不存在"),
new MyError(DB_ER_NONEXISTING_GRANT ,"當前用戶無權訪問數據庫"),
new MyError(DB_ER_TABLEAccess_DENIED_ERROR ,"當前用戶無權訪問數據表"),
new MyError(DB_ER_COLUMNAccess_DENIED_ERROR ,"當前用戶無權訪問數據表中的字段"),
new MyError(DB_ER_NO_SUCH_TABLE ,"數據表不存在"),
new MyError(DB_ER_NONEXISTING_TABLE_GRANT ,"未定義用戶對數據表的訪問權限"),
new MyError(DB_ER_SYNTAX_ERROR ,"SQL語句語法錯誤"),
new MyError(DB_ER_NET_READ_ERROR ,"網絡錯誤,出現讀錯誤,請檢查網絡連接狀況"),
new MyError(DB_ER_NET_READ_INTERRUPTED ,"網絡錯誤,讀超時,請檢查網絡連接狀況"),
new MyError(DB_ER_NET_ERROR_ON_WRITE ,"網絡錯誤,出現寫錯誤,請檢查網絡連接狀況"),
new MyError(DB_ER_NET_WRITE_INTERRUPTED ,"網絡錯誤,寫超時,請檢查網絡連接狀況"),
new MyError(DB_ER_DUP_ENTRY ,"字段值重復,入庫失敗"),
new MyError(DB_ER_DUP_UNIQUE ,"字段值重復,更新記錄失敗"),
new MyError(DB_ER_CHECK_NO_SUCH_TABLE ,"打開數據表失敗"),
new MyError(DB_ER_ERROR_DURING_COMMIT ,"提交事務失敗"),
new MyError(DB_ER_ERROR_DURING_ROLLBACK ,"回滾事務失敗"),
new MyError(DB_ER_TOO_MANY_USER_CONNECTIONS ,"當前用戶和數據庫建立的連接已到達數據庫的最大連接數,請增大可用的數據庫連接數或重啟數據庫"),
new MyError(DB_ER_LOCK_WAIT_TIMEOUT ,"加鎖超時"),
new MyError(DB_ER_NO_PERMISSION_TO_CREATE_USER ,"當前用戶沒有創建用戶的權限"),
new MyError(DB_ER_NO_REFERENCED_ROW ,"外鍵約束檢查失敗,更新子表記錄失敗"),
new MyError(DB_ER_ROW_IS_REFERENCED ,"外鍵約束檢查失敗,刪除或修改主表記錄失敗"),
new MyError(DB_ER_USER_LIMIT_REACHED ,"當前用戶使用的資源已超過所允許的資源,請重啟數據庫或重啟服務器"),
new MyError(DB_ER_SPECIFIC_Access_DENIED_ERROR ,"權限不足,您無權進行此操作"),
new MyError(DB_ER_NOT_SUPPORTED_YET ,"MySQL版本過低,不具有本功能"),
};
public static String getErrorInfo(int errno)
{
for(int i=0; i{
if(errno == errormap[i].getErrorNo())
{
return errormap[i].getErrorDesc();
}
}
return "";
}
public static void main(String[] args)
{
for(int i=0; i{
System.out.println(errormap[i].getErrorNo() + ":" + errormap[i].getErrorDesc());
}
}
}