自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

關(guān)于MySQL常見錯誤碼的講解

數(shù)據(jù)庫 MySQL
MySQL的bug,被攻擊了,服務(wù)掛了,不正確的關(guān)閉MySQL,損壞的數(shù)據(jù)都有可能造成這些問題。當(dāng)這些錯誤發(fā)生時,數(shù)據(jù)就無法訪問了,并且一直永久的無法訪問。所以,最好把數(shù)據(jù)做好備份,如果你沒有備份,可以嘗試去修復(fù)MySQL。

[[202400]]

Error code 1064: Syntax error

假設(shè)有一個sql語句

  1. select LastName, FirstName,from Person 

執(zhí)行的時候會包錯誤

  1. Error Code: 1064. 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 'from Person' at line 2. 
  • 1064錯誤說明你的sql語句有語法錯誤,單看這個錯誤碼,我們無法判斷出具體是哪的錯誤。
  • 仔細(xì)看報錯信息的最后,有一段用單引號標(biāo)識的對源sql語句的引用'from Person',這表示的是這段sql語句無法被解析,但是對于我們這個例子,這個報錯引用并沒什么卵用。我們再注意觀察,這個引用的信息前面多了一個逗號,這個逗號后面應(yīng)該接的是個表中的列名,而不是from關(guān)鍵字。
  • 1064的錯誤信息一般最后會有個... near '...'格式的信息,near后面的引用就是sql語句開始無法被解析的地方,當(dāng)遇到這個錯誤,多觀察這段無法解析的sql語句前后的字符。
  • 有時候,你得到的錯誤信息是... near '',near后面的引用是空的,這表示出錯的地方位于sql語句的開頭或者第一個字符,通常情況是單引號、引號、括號沒有成對出現(xiàn)或者是結(jié)尾處沒有正確的字符,如中文分號。
  • 如果發(fā)現(xiàn)了1064錯誤,注意查看報錯信息里引用的sql語句,多查看這個錯誤的sql語句前后部分。
  • 如果有人向你詢問1064的sql錯誤,你最好讓他給你提供完整的sql語句和報錯信息。

Error code 1175: Safe Update

這個錯誤是由于你執(zhí)行update或者delete語句時,沒有指定where條件,如果想忽略這個錯誤,則修改配置

  1. SET SQL_SAFE_UPDATES = 0; 

重新打開錯誤提醒

  1. SET SQL_SAFE_UPDATES = 1; 
  • 1067, 1292, 1366, 1411 - Bad Value for number, date, default, etc.
  • 1067這個錯誤和TINESTAMP默認(rèn)值有關(guān),需查看官方文檔
  • 1292/1366 double和integer類型錯誤,檢查語法和數(shù)值類型
  • 1292 detatime錯誤,檢查插入的時間數(shù)據(jù)格式,是否超出范圍,帶時區(qū)格式的時間字符串格式是否有問題
  • 1292 VARIABLE 檢查你設(shè)置的VARIABLE屬性
  • 1292 LOAD DATA 檢查轉(zhuǎn)義字符,檢查數(shù)據(jù)類型
  • 1411 STR_TO_DATE 檢查時間字符串格式

1045 Access denied

權(quán)限錯誤,檢查用戶名密碼是否正確,檢查當(dāng)前用戶是否有權(quán)限訪問數(shù)據(jù)。

1236 "impossible position" in Replication

  • 通常情況下,這是由于mysql主節(jié)點掛掉了并且sync_binlog=OFF,解決方法是在從節(jié)點設(shè)置 POS=0。
  • 當(dāng)sync_binlog=OFF時,主節(jié)點會在把數(shù)據(jù)先發(fā)給從節(jié)點,然后寫binlog。當(dāng)主節(jié)點在寫binlog之前掛掉了,這時候由于已經(jīng)把數(shù)據(jù)發(fā)給從節(jié)點了,所以從節(jié)點在寫完數(shù)據(jù)后,binlog被更新,導(dǎo)致主節(jié)點和從節(jié)點binlog指針位置不一致。所以,當(dāng)主節(jié)點重新啟動后,會開啟一個新的binlog,所以這時候把從節(jié)點的binlog指針位置設(shè)置為0,從頭重新開始。
  • 最好的解決方法設(shè)置sync_binlog=ON,這樣基于binlog同步,但會帶來較多的i/o開銷。

24 Can't open file (Too many open files)

open_files_limit是個系統(tǒng)的設(shè)置,table_open_cache必須比系統(tǒng)的這個配置小

1062 - Duplicate Entry

這個錯誤通常有以下幾個原因

主鍵約束,Error Code: 1062. Duplicate entry ‘12’ for key ‘PRIMARY’,主鍵約束的數(shù)據(jù)必須是唯一的,解決的方法之一是設(shè)置主鍵是自增的,這樣,插入數(shù)據(jù)時,設(shè)置主鍵的數(shù)據(jù)為NULL。

唯一屬性約束,Error Code: 1062. Duplicate entry ‘A’ for key ‘code’,這是你設(shè)置了數(shù)據(jù)是唯一的,但插入的數(shù)據(jù)和表中數(shù)據(jù)重復(fù)了,解決的方法是使用INSERT IGNORE代替INSERT,INSERT IGNORE插入數(shù)據(jù)的時候,如果重復(fù)了,就不做任何操作,也不報錯,如果不重復(fù),就和INSERT行為一致,插入數(shù)據(jù)。

126, 127, 134, 144, 145

當(dāng)你訪問數(shù)據(jù)時,可能會遇到這些錯誤。這是錯誤是由于mysql數(shù)據(jù)庫內(nèi)部錯誤引起的。比如:

  1. MySQL error code 126 = Index file is crashed 
  2.  
  3. MySQL error code 127 = Record-file is crashed 
  4.  
  5. MySQL error code 134 = Record was already deleted (or record file crashed) 
  6.  
  7. MySQL error code 144 = Table is crashed and last repair failed 
  8.  
  9. MySQL error code 145 = Table was marked as crashed and should be repaired 

 

mysql的bug,被攻擊了,服務(wù)掛了,不正確的關(guān)閉mysql,損壞的數(shù)據(jù)都有可能造成這些問題。當(dāng)這些錯誤發(fā)生時,數(shù)據(jù)就無法訪問了,并且一直永久的無法訪問。所以,最好把數(shù)據(jù)做好備份,如果你沒有備份,可以嘗試去修復(fù)mysql。如果存儲引擎是MyISAM,使用CHECK TABLE和REPAIR TABLE命令(mysql>=5.7)。

  1. CHECK TABLE <table name> ////To check the extent of database corruption 
  2.  
  3. REPAIR TABLE <table name> ////To repair table 

 

1366

這通常意味著客戶端和服務(wù)器之間的字符集處理不一致。

139

錯誤139可能意味著表定義中字段的數(shù)量和大小超過了一些限制。檢查sql語句中異常長的字符串,異常大的整數(shù)等等

2002, 2003 Cannot connect

無法連接,如果服務(wù)正常啟動,檢查以下可能的項目

1、是不是防火墻的問題,關(guān)閉防火墻試試

2、檢查mysql服務(wù)監(jiān)聽的IP

3、檢查skip-name-resolve

4、檢查socket文件路徑

2014 Commands out of sync; you can't run this command now

這個是由于你運行sql查詢語句的序列不正確造成的,官方的解釋

  1. This can happen, for example, if you are using mysql_use_result() and try to execute a new query before you have called mysql_free_result(). It can also happen if you try to execute two queries that return data without calling mysql_use_result() or mysql_store_result() in between

總結(jié)起來意思就是你查詢了結(jié)果,但是卻沒有把結(jié)果獲取下來。造成mysql server一直在等你把結(jié)果取走。

1215: Cannot add foreign key constraint

添加外鍵錯誤,檢查外鍵關(guān)聯(lián)的兩個字段數(shù)據(jù)類型是否一致。 

責(zé)任編輯:龐桂玉 來源: segmentfault
相關(guān)推薦

2025-01-02 10:37:13

2020-06-30 11:36:45

錯誤碼合理開發(fā)

2022-12-28 08:17:19

異常處理code

2017-11-20 11:53:38

CDN406錯誤故障

2022-03-08 08:02:44

Java系統(tǒng)錯誤碼

2022-01-17 06:58:35

C語言函數(shù)錯誤碼

2012-07-26 10:27:31

PHP

2023-01-29 23:51:07

微服務(wù)框架Go

2021-04-14 07:08:14

Nodejs錯誤處理

2024-10-16 12:23:55

技巧Spring驗證

2019-05-20 09:30:20

MySQL常見錯誤數(shù)據(jù)庫

2019-10-18 10:03:42

MySQLMySQL 8服務(wù)器

2022-03-17 08:34:47

TypeScript項目類型

2020-08-04 10:31:53

JavaScriptthis開發(fā)

2010-04-26 11:34:13

Aix FTP

2017-06-07 15:37:51

MySQLSQL性能優(yōu)化

2025-01-20 09:03:41

項目Error優(yōu)化

2019-09-19 09:41:58

C語言Go語言Java

2022-12-13 14:51:26

DevOps數(shù)據(jù)工具

2024-12-24 09:17:53

瀏覽器報錯運維
點贊
收藏

51CTO技術(shù)棧公眾號