建議收藏備查!MySQL 常見錯誤代碼說明

先給你們看幾個實例的錯誤分析與解決方案。php

1.ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/mysql/mysql.sock'mysql

  • 問題分析:多是數據庫沒有啓動或者是端口被防火牆禁止。
  • 解決方法:啓動數據庫或者防火牆開放數據庫監聽端口。

2.ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)sql

  • 問題分析:密碼不正確或者沒有權限訪問。
  • 解決方法:

1)修改 my.cnf 主配置文件,在[mysqld]下添加 skip-grant-tables,重啓數據庫。最後修改密碼命令以下:數據庫

mysql> use mysql;
mysql> update user set password=password("123456") where user="root";

再刪除剛剛添加的 skip-grant-tables 參數,再重啓數據庫,使用新密碼便可登陸。緩存

2)從新受權,命令以下:服務器

mysql> grant all on *.* to 'root'@'mysql-server' identified by '123456';

3.客戶端報 Too many connections網絡

  • 問題分析:鏈接數超出 Mysql 的最大鏈接限制。
  • 解決方法:
  • 一、在 my.cnf 配置文件裏面增長鏈接數,而後重啓 MySQL 服務。max_connections = 10000
  • 二、臨時修改最大鏈接數,重啓後不生效。須要在 my.cnf 裏面修改配置文件,下次重啓生效。
set GLOBAL max_connections=10000;

4.Warning: World-writable config file '/etc/my.cnf' is ignored ERROR! MySQL is running but PID file could not be foundapp

  • 問題分析:MySQL 的配置文件/etc/my.cnf 權限不對。
  • 解決方法:
chmod 644 /et/my.cnf

5.InnoDB: Error: page 14178 log sequence number 29455369832 InnoDB: is in the future! Current system log sequence number 29455369832運維

  • 問題分析:innodb 數據文件損壞。
  • 解決方法:修改 my.cnf 配置文件,在[mysqld]下添加 innodb_force_recovery=4, 啓動數據庫後備份數據文件,而後去掉該參數,利用備份文件恢復數據。

6.從庫的 Slave_IO_Running 爲 NOsocket

  • 問題分析:主庫和從庫的 server-id 值同樣.
  • 解決方法:修改從庫的 server-id 的值,修改成和主庫不同,比主庫低。修改完後重啓,再同步便可!

7.從庫的 Slave_IO_Running 爲 NO問題

  • 問題分析:形成從庫線程爲 NO 的緣由會有不少,主要緣由是主鍵衝突或者主庫刪除或更新數據, 從庫找不到記錄,數據被修改致使。一般狀態碼報錯有 100七、103二、106二、1452 等。
  • 解決方法一:
mysql> stop slave;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave;
  • 解決方法二:設置用戶權限,設置從庫只讀權限
set global read_only=true;

8.Error initializing relay log position: I/O error reading the header from the binary log

  • 分析問題:從庫的中繼日誌 relay-bin 損壞.
  • 解決方法:手工修復,從新找到同步的 binlog 和 pos 點,而後從新同步便可。
mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.xxx',MASTER_LOG_POS=xxx;

維護過MySQL的運維或DBA都知道,常常會遇到的一些錯誤信息中有一些相似10xx的代碼。

Replicate_Wild_Ignore_Table:
         Last_Errno: 1032
         Last_Error: Could not execute Update_rows event on table xuanzhi.test; Can't find record in 'test', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000004, end_log_pos 3704

可是,若是不深究或者以前遇到過,還真不太清楚,這些代碼具體的含義是什麼?這也給咱們排錯形成了必定的阻礙。

因此,今天民工哥就把主從同步過程當中一些常見的錯誤代碼,它的具體說明給你們整理出來了。

MySQL常見錯誤代碼說明:

  • 130 :文件格式不正確。
  • 145 :文件沒法打開
  • 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版本太低,不具備本功能
  • 1250:客戶端不支持服務器要求的認證協議,請考慮升級客戶端。
  • 1251:Client 不能支持 authentication protocol 的要求Client does not support authentication protocol requested by server; consider upgrading MySQL clientQuote:
  • 1267:不合法的混合字符集。
  • 2002:服務器端口不對。
  • 2003:MySQL 服務沒有啓動,請啓動該服務。
  • 2008:MySQL client ran out of memory錯誤指向了MySQL客戶mysql。這個錯誤的緣由很簡單,客戶沒有足夠的內存存儲所有結果。
  • 2013:遠程鏈接數據庫是有時會有這個問題,MySQL 服務器在執行一條 SQL 語句的時候失去了鏈接形成的。
  • 10048:建議在my.ini文件中修改最大鏈接數, 把 mysql_connect() 方法都改爲了 mysql_pconnect() 方法. 要修改mysql_pconnect(),能夠在論壇的data目錄的sql_config.php中 p c o n n e c t = 0 ; / / 是 否 持 久 連 接 修 改 成 pconnect = 0; //是否持久鏈接 修改爲pconnect=0;//是否持久鏈接修改爲pconnect = 1; 開啓防刷新,嚴禁刷新太快.
  • 10055:沒有緩存空間可利用,查看下你的C盤空間是否已經滿,清除一些沒有用的文件. 能夠在後臺的"論壇核心設置","核心功能設置"裏"進程優化"開啓,"GZIP 壓縮輸出"關閉.查找了一下10055(沒有緩存空間可利用)
  • 10061: 啓動這臺機器上的MySQL服務 如服務啓動失敗,必定是你的my.ini文件出了差錯, MySQL服務不能正常啓動 你刪除了它後,MySQL就會按其默認配置運行, 那就沒有問題了

給你們推薦幾篇MySQL的文章,值得學習!!!

一入職,就遇到 MySQL 這麼大 Bug!差點背鍋走人...

超讚!牆裂推薦一個 MySQL 自動化運維工具!

記住!永遠不要在 MySQL 中使用 UTF-8

爲何不建議把數據庫部署在Docker容器內?

贊!7000 字學習筆記,MySQL 從入門到放棄

官方工具|MySQL Router 高可用原理與實戰

以上就是今天給你們整理的常見錯誤代碼說明,但願對你們的平常工做或學習有所幫助與借鑑,你們能夠點個贊與轉發分享支持一波,你的支持就是民工哥最大的寫做動力。

image

相關文章
相關標籤/搜索