一、 Can’t connect to MySQL server on ‘localhost'(10061)?
翻譯:不能連線到 localhost 上的 mysql? 分析:這說明 “localhost” 計算機是存在的,但在這臺機器上卻沒提供 MySQL 服務。? 需要啟動這臺機器上的 MySQL 服務, 如 果機子負載太高沒空相應請求也會產生這個錯誤。? 解決: 既然沒有啟動那就去啟動這臺機子的 mysql 。如果啟動不成功,多數是因為你的 my.ini 配置的 有問題。重新配置其即可。? 如果覺得 mysql 負載異常,可以到 mysql/bin 的目錄下執行 mysqladmin-uroot -p123 processlist 來檢視 mysql 當前的程式。
二、 Unknown MySQL ServerHost ‘localhosadst’ (11001)
翻譯:未知的 MySQL 站群伺服器 localhosadst? 分析:站群伺服器 localhosasdst 不存在。或者根本無法連線? 解決:仔細檢查自己論壇下面的./config.inc.php 找到 $dbhost 重新設定為正確的 mysql 站群伺服器地址。
   
三、 Access denied for user:’roota@localhost’ (Using password: YES)
? 翻譯:使用者 roota 訪問 localhost 被拒絕(沒有允許透過)? 分析:造成這個錯誤一般資料庫使用者名稱和密碼相對 mysql 站群伺服器不正確? 解決:仔細檢查自己論壇下面的 ./config.inc.php 找到 $dbuser 、 $dbpw 核實後重新設定儲存即可。
四、 Access denied for user:’red@localhost’ to database ‘newbbs’?
翻譯:使用者 red 在 localhost 站群伺服器上沒有許可權運算元據庫 newbbs? 分析:這個提示和問題三是不同的。那個是在連線資料庫的時候就被阻止了,而這個錯誤是在對資料庫進行操作時引起 的。比如在 selectupdate 等等。這個是因為該使用者沒有運算元據庫相應的權力。比如 select 這個操作在 mysql.user.Select_priv 裡記錄 Y 可以操作 N 不可以操作。? 解決:如果是自己的獨立 WordPress 主機那麼更新 mysql.user 的相應使用者記錄,比如這裡要更新的使用者為 red 。或者直接修改./config.inc.php 為其配置一個具有對資料庫操作許可權的使用者? 或者透過如下的命令來更新授權 grantall privileges on dbname.* to ‘user’@’localhost’ identified by ‘password’? 提示:更新了 mysql 庫中的記錄一定要重啟 mysql 站群伺服器才能使更新生效?FLUSH PRIVILEGES;
五、 No Database Selected
? 翻譯:沒有資料庫被選擇上? 分析:產生的原因有兩種?config.inc.php 裡面 $dbname設定的不對。致使資料庫根本不存在,所以在 $db->select_db($dbname); 時返回了 false? 和上面問題四是一樣的,資料庫使用者沒有 select 許可權,同樣會導致這樣的錯誤。當你發現 config.inc.php 的設定沒有任 何問題,但還是提示這個錯誤,那一定就是這種情況了。? 解決:對症下藥? 開啟 config.inc.php 找到 $dbname 核實重新配置並儲存? 同問題 四的解決方法
六、 Can’t open file:’xxx_forums.MYI’. (errno: 145)
翻譯:不能開啟 xxx_forums.MYI? 問題分析:? 這種情況是不能開啟 cdb_forums.MYI 造成的,引起這種情況可能的原因有:?1 、站群伺服器非正常關機,資料庫所在空間已滿,或一些其它未知的原因,對資料庫表造成了損壞。?2 、類 unix 作業系統下直接將資料庫檔案複製移動會因為檔案的屬組問題而產生這個錯誤。? 解決方法:?1 、修復資料表? 可以使用下面的兩種方式修復資料表:(第一種方 法僅適合獨立 WordPress 主機使用者)?1)使用 myisamchk ,MySQL 自帶了專門使用者資料表檢查和修復的工具 —— myisamchk 。更改當前目錄到 MySQL/bin 下面,一般情況下只有在這個下面才能執行 myisamchk 命令。常用的修復命令為:myisamchk-r 資料檔案目錄/資料表名.MYI;?2)透過 phpMyAdmin 修復,phpMyAdmin 帶有修復資料表的功能,進入到某一個表中後,點選 “操作”,在下方的 “表維護” 中點選 “修復表” 即可。? 注意:以上兩種修復方式在執行前一定要備份資料 庫。?2 、修改檔案的屬組(僅適合獨立 WordPress 主機使用者)?1)複製資料庫檔案的過程中沒有將資料庫檔案設定為 MySQL 執行的帳號可讀寫(一般適用於 Linux 和 FreeBSD 使用者)。
七、 Table’test.xxx_sessions’ doesn’t exist
? 翻譯:xxxxx 表不存在? 分析:在執行 sql 語句時沒有找到表,比如:SELECT * FROMxxx_members WHERE uid=’XX’ 這裡如果表 xxx_members 不存在於 $dbname 庫裡,那麼就會提示這個錯誤。具體可分為以下三種情況來討論:? 安裝外掛外掛或者 hack 時修改了程 序檔案,而忘記了對資料庫作相應的升級。? 後臺使用了不完全備份,匯入資料時沒有匯入到已經安裝了相應版本的論壇的資料庫中。? 解決: 同樣對症下藥,不同的原因不同的處理方法。? 仔細對照外掛外掛作者提供的安裝說明,把遺漏的對資料庫的操作補上,如果仍然不能解決問題,那麼應該懷疑該外掛外掛的 可用性了。去諮詢一下外掛外掛作者,或者將其解除安裝。? 不要張冠李戴,多大的腳就穿多大的鞋。總之使得程式檔案和資料庫配套即可.
八、 Unknown column’column_name’ in ‘field list’
翻譯:未知的欄位名 column_name? 分析:在執行 sql 語句是出現了指定表中沒有的欄位名稱,就會出現這個錯誤。具體導致的原因可分為以下兩種? 安裝外掛外掛或者 hack 時修改了程式檔案,而忘記了對資料庫作相應的升級。? 程式檔案和資料庫不配套,比如 d2.5 的資料庫配置給 d4.1 的程式來用肯定會 出現這個錯誤。? 解決: 導致的原因和問題八的 1 和 3 是相同的,所以解決方法也一樣。
九、 You have an error in yourSQL syntax
翻譯:有一個語法錯誤在你的sql中? 分析:論壇標準的程式是沒有sql語法錯誤的。所以造成這個錯誤的原因一般就兩類? 安裝外掛外掛或擅自修改程式。? 不同 的資料庫版本資料庫匯出匯入,比如MySQL4.1的資料在匯出的語句包含了MySQL4.0沒有的功能,像字符集的設定,這時如果將這些sql匯入到 MySQL4.0的時候就會產生sql語法錯誤。? 解決:? 仔細檢檢視到底是哪裡的錯誤,將其修正,實在不行就用標準程式把出錯的程式替換。? 在資料庫備 份的時候要留意,如果不打算倒入到其他版本的mysql中則不用特殊考慮,反之要特殊的設定。使用DZ4.1的後臺資料備份,可以按照提示去設定想要的格 式。獨立WordPress主機的也可以在到處的時候將其匯出為mysql4.0的格式。?mysqldump -uroot -p–default-character-set=latin1 –set-charset=gbk –skip-opt databse >test.sql
十、 Duplicate entry ‘xxx’for key 1
翻譯:插入 xxx 使索引 1 重複? 分析:索引如果是 primaryunique 這兩兩種,那麼資料表的資料對應的這個欄位就必須保證其每條記錄的唯一性。否則就會產生 這個錯誤。? 一般發生在對資料庫寫操作的時候,例如 Discuz!4.1 論壇程式要求所有會員的使用者名稱 username 必須唯一,即 username 的索 引是 unique,這時如果強行往 cdb_members 表裡插入一個已有的 username 的記錄就會發上這個錯誤,或者將一條記錄的 username 更新 為已有的一個 username 。? 改變表結構的時候也有可能導致這個錯誤。例如 Discuz!4.0 論壇的資料庫中 cdb_members.username 的索引型別是 index 這個時候是允許有相同 username 的記錄存在 的,在升級到 4.1 的時候,因為要將 username 的索引由原來的 index 變 為 unique 。如果這時 cdb_members 裡存在有相同的 username 的記錄,那麼就會引發這個錯誤。? 匯出資料據時有時會因為一些原因(作者 目前還不清楚)導致同一條記錄被重複匯出,那麼這個備份資料在匯入的時候出現這個錯誤是在所難免的了。? 修改了 auto_increment 的值,致使 “下一個 Autoindex” 為一條已經存在的記錄? 解決: 兩種思路,一是破壞掉唯一性的索引。二是把重複的資料記錄幹掉,只保留一條。很顯然第一種思路是不可取的。那麼按照二的思路我們得出以下幾種解決方法,對 應上面的 i iiiii? 略? 按照錯誤提示裡的資訊到資料庫中將重複的記錄刪除,僅保留一條即可。之後繼續執行升級操作。? 這種情況發生的機率很小,可以用文字編輯器 開啟備份檔案,查詢重複的資訊。將其多餘的拿掉,僅保留一條即可。? 查詢出表中 auto_increment 最大的一條記錄,設定 auto_incerment 比其大一即可。?PS:repaire table “表名 “,可以暫時解決問題。
十一、 Duplicate key name’xxx’
? 翻譯:索引名重複? 分析:要建立的索引已經存在了,就會引發這個錯誤,這個錯誤多發生在升級的時候。可能是已經升級過的,重複升級引起的錯誤。也有可能 是之前使用者擅自加的索引,剛好與升級檔案中的所以相同了。? 解決: 看看已經存在的索引和要新增的索引是否一樣,一樣的話可以跳過這條 sql 語句,如果不一樣那麼現刪除已存在的所以,之後再執行。
十二、 Duplicate column name’xxx’
? 翻譯:欄位名 xxx 重複? 分析:新增的欄位 xxx 已經存在,多發生在升級過程中,與問題十二的產生是一樣的。? 解決: 看一下已經存在的欄位是否和將要新增的欄位屬性完全相同,如果相同則可以跳過不執行這句 sql,如果不一樣則刪除掉這個欄位。之後繼續執行升級程式。
十三、 Table ‘xxx’ alreadyexists
? 翻譯:資料表 xxx 已經存在? 分析:xxx 表已經存在於庫中,再次試圖建立這個名字的表就會引發這個錯誤。同樣多發生在論壇的升級中。類似於問題十 二。? 解決: 看看已經存在的表是否和將要建立的表完全一樣,一樣的話可以跳過不執行這個 sql,否則請將存在的表先刪除,之後繼續執行升級檔案。
十四、 Can’t create database’xxx’. Database exists
翻譯:不能建立資料庫 xxx,資料庫已經存在? 分析:一個 mysql 下面的資料庫名稱必須保證唯一性,否則就會有這個錯誤。? 解決:把已經存在的資料庫改名或者把將要建立的資料庫改名,總之不讓他們的名稱衝突。
十五、 小結(針對問題 1112131415)
此類問題錯誤提示中都暗藏一個站群關鍵詞 TDKduplicate(重複)? 那麼對於 mysql 資料庫來說什麼東西是不能重複的呢?? 資料庫 database? 同一個資料庫下資料表 table? 同一個資料表下欄位 column? 同一個資料表下索引 key? 同一個資料表在索引唯一(UNIQUEPRIMARY)的情況下記錄中的這些欄位不可以重複
十六、 Unknown system variable’NAMES’
? 翻譯:未知的系統變數 NAMES? 分析:Mysql 版本不支援字符集設定,此時強行設定字符集就會出現這個錯誤。? 解決: 將 sql 語句中的 SET NAMES ‘xxx’ 語句去掉
十七、 Lost connection toMySQL server during query?
翻譯:MySQL 站群伺服器失去連線在查詢期間? 分析:遠端連線資料庫是有時會有這個問題。 MySQL 站群伺服器在執行一條 sql 語句的時候失去了連線造成的。? 解決: 一般不需要怎麼去處理,如果頻繁的出現那麼考慮改善硬體環境。
十八、 User ‘red’ has exceededthe ‘max_updates’ resource (current value: 500)
翻譯:msql 使用者 red 已經超過了’max_updates’(最大更新次數),’max_questions’(最大查詢次 數),’max_connections’(最大連線數),當前設定為 500? 分析:在 mysql 資料庫的下有一個庫為 mysql,它其中有一個表為 user 這裡面的紀錄每一條都對應為一個 mysql 使用者的授權。其中欄位 max_questions max_updates max_connections 分別記錄著最大查詢次數 最大更新數 最大連線數,當目前的任何一個引數大於任何一個設定的值就會產生這個錯誤。? 解決: 獨立 WordPress 主機使用者可以直接修改授權表。修改完之後重啟 mysql 或者跟新授權表,進入 mysql 提示符下執行?FLUSH PRIVILEGES;? 記得後面要有分號’;’? 虛擬 WordPress 主機的使用者如果總是出現這個問題可找 WordPress 主機空間商協商解決。
十九、 Too many connections(1040) 連結過多?
翻譯:達到最大連線數? 問題分析:? 連線數超過了 mysql 設定的值,與 max_connections 和 wait_timeout 都有關係。 wait_timeout 的值越大,連線的空閒等待就越長,這樣就會造成當前連線數越大? 解決方法:?1. 虛擬 WordPress 主機使用者請聯絡 WordPress 主機空間商最佳化 MySQL 站群伺服器的配置;?2. 獨立 WordPress 主機使用者請聯絡站群伺服器管理員最佳化 MySQL 站群伺服器的配置,可參考:? 修改 MySQL 配置檔案 my.ini 或者 my.cnf 中的引數:?max_connections= 1000?wait_timeout = 10? 修改後重啟 MySQL ,如果經常性的報此錯誤,請做一下站群伺服器的整體最佳化。
二十、 There is no such grantdefined for user ‘%s’ on host ‘%s’?
錯誤編號:1141? 問題分析:?MySQL 當前使用者無權訪問資料庫。? 解決方法:?1 、虛擬 WordPress 主機使用者請聯絡 WordPress 主機空間商,確認給你提供的帳號是否有授權資料庫的許可權。?2 、獨立 WordPress 主機使用者請聯絡站群伺服器管理員,確認給您提供的資料庫帳號是否有管理此資料庫的許可權。
二十一、 Error on rename of ‘%s’to ‘%s’ (errno: %d)?error.:1025?
問題分析:? 請檢查一下您的程式是否有修改資料庫表名的語句。? 解決方法:?1. 請檢查您的程式中哪些地方需要修改資料庫表名;?2. 如果您的實際應用確實需要修改到資料庫表名的話,請聯絡 WordPress 主機空間商或者站群伺服器管理員給您開放修改庫名的許可權和站群伺服器本身是否正常。
二十二、 Error reading file ‘%s'(errno: %d)?error.:1023?
問題分析:? 資料庫檔案不能被讀取。? 解決方法:?1. 虛擬 WordPress 主機使用者請聯絡 WordPress 主機空間商檢視資料庫是否完好。?2. 獨立 WordPress 主機使用者請聯絡站群伺服器管理員檢查一下 MySQL 本身是否正常, MySQL 是否可以讀取檔案,Linux 使用者可以檢查一下 MySQL 的資料庫檔案的屬主是否正確以及本身的檔案是否損壞。
二十三、 Host ‘*****’ is blockedbecause of many connection errors; unblock with ‘mysqladmin flush-hosts’?error.:1129
問題分析:? 資料庫出現異常,請重啟資料庫。? 解決方法:?1. 由於存在很多連線錯誤,WordPress 主機’****’ 被遮蔽,虛擬 WordPress 主機使用者請聯絡 WordPress 主機空間商處理,獨立 WordPress 主機使用者請聯絡站群伺服器管理員,在 MySQL 的命令控制檯下執行’mysqladmin flush-hosts’ 解除遮蔽即可,或者重啟 MySQL 資料庫
二十四、 dropping database (can’tdelete ‘%s’, errno: %d)?error.:1009?
問題分析:? 不能刪除資料庫檔案,導致刪除資料庫失敗。? 解決方法:?1. 檢查您使用的資料庫管理帳號是否有許可權刪除資料。?2. 檢查資料庫是否存在。
二十五、 Got error 28 from tablehandler?error.:1030?
問題分析:? 資料庫所在磁碟空間已滿。? 解決方法:?1. 虛擬 WordPress 主機使用者請聯絡 WordPress 主機空間商增加 MySQL 所在的磁碟空間或者清理一些無用檔案;?2. 獨立 WordPress 主機使用者請聯絡站群伺服器管理員增加 MySQL 所在的磁碟空間或者清理一些無用檔案
二十六、 Can’t create a newthread; if you are not out of available memory, you can consult the manual fora possible OS-dependent bug 。?error.:11/35?
問題分析:? 資料庫站群伺服器問題,資料庫操作無法建立新執行緒。一般是兩個原因:?1. 站群伺服器系統記憶體溢位。?2. 環境站群軟體損壞或系統損壞。? 解決方 法:?1. 虛擬 WordPress 主機使用者請聯絡下 WordPress 主機空間商資料庫站群伺服器的記憶體和系統是否正常。?2. 獨立 WordPress 主機使用者請聯絡站群伺服器管理員檢查站群伺服器的記憶體和系統是否正常,如果服 務器記憶體緊張,請檢查一下哪些程式消耗了站群伺服器的記憶體,同時考慮是否增加站群伺服器的記憶體來提高整個的負載能力。
二十七、 Error: Client does notsupport authentication protocol requested by server; consider upgrading MySQLclient?error.:1251?
問題分析:? 如果你升級MySQL 到 4.1 以上版本後遇到以上問題, 請先確定你的MySQL Client 是 4.1 或者更高版本(Windows下有問題你就直接跳到下面看解決方法了,因為 MySQL 在Windows 是 client 和 server 一起裝上了的)。? 解決方法:?1.Windows 平臺? 主要是改變連線MySQL 的帳戶的加密方式,MySQL 4.1/5.0 是透過PASSWORD 這種方式加密的。可以透過以下兩種方法得到解決:?1) mysql->SET PASSWORD FOR’some_user’@’some_host’=OLD_PASSWORD(‘new_password’);?2) mysql->UPDATE mysql.user SETPassword=OLD_PASSWORD(‘new_password’) WHERE Host=’some_host’ ANDUser=’some_user’;?2.Linux/Unix 平臺?Linux平臺下首先確定是否安裝過 MySQL 的客戶端,這個用 rpm安裝很簡單,Linux 程式碼為:?rpm -ivh MySQL-client-4.1.15-0.i386.rpm? 然後在編譯 php 的時候要加上:?–with-mysql=/your/path/to/mysql? 一般情況下都可以解決。如果還出現這種錯誤,可以按照下面的方法來 做:?mysql->SET PASSWORD FOR’some_user’@’some_host’=OLD_PASSWORD(‘new_password’);?mysql->UPDATE mysql.user SET Password=OLD_PASSWORD(‘new_password’)WHERE Host=’some_host’ AND User=’some_user’;
二十八、 Error: Can’t connect tolocal MySQL server through socket ‘/var/lib/mysql/mysql.sock’?error.:2002?
問題分析:? 出現這個錯誤一般情況下是因為下面兩個原因:?1.MySQL 站群伺服器沒有開啟。?2.MySQL 站群伺服器開啟了,但不能找到 socket 檔案。? 解決方法:?1. 虛擬 WordPress 主機使用者,請聯絡 WordPress 主機空間商確認資料庫是否正常啟動。?2. 獨立 WordPress 主機使用者,請檢查一下 MySQL 服務是否已經開啟,沒有開啟,請啟動 MySQL 服務;如果已經開啟,並且是 Linux 系統,請檢查一下 MySQL 的 socket 的路徑,然後開啟 config.inc.php 找到?$dbhost = ‘localhost’; 在 hostname 後面加冒號 ‘:’ 和 MySQL 的 socket 的路徑。? 比如 MySQL 站群伺服器為 localhost?MySQL 的 socket 的路徑為 /tmp/mysql.sock? 那麼就改成如下:?$dbhost= ‘localhost:/temp/mysql.sock’;
二十九、 Can’t connect to MySQLserver on ‘localhost’?error.:2003?
問題分析:?MySQL 服務沒有啟動,一般是在異常的情況下 MySQL 無法啟動導致的,比如無可用的磁碟空間,my.ini 裡 MySQL 的 basedir 路徑設定錯誤等。? 解決方法:?1. 檢查磁碟空間是否還有剩餘可用空間,儘量保持有足夠的磁碟空間可用。?2. 檢查 my.ini 裡的 basedir 等引數設定是否正確,然後重新啟動下 MySQL 服務。
三十、 Lost connection to MySQLserver during query?error.:2013
? 問題分析:? 資料庫查詢過程中丟失了與 MySQL 站群伺服器的連線。? 解決方法:?1. 請確認您的程式中是否有效率很低的程式,比如某些外掛外掛,可以解除安裝掉外掛外掛,檢查一下站群伺服器是否正常;?2. 站群伺服器本身資源 緊張,虛擬 WordPress 主機使用者請聯絡 WordPress 主機空間商確認,獨立 WordPress 主機使用者請聯絡站群伺服器管理員,檢查一下站群伺服器是否正常。
三十一、 Got a packet bigger than’max_allowed_packet’ bytes?
錯誤編號:1153? 問題分析:調整了 Mantis 的上傳附件的大小卻沒有調整 MySQL 的配置檔案。? 解決辦法:?1 、獨立 WordPress 主機使用者請按照以下方法調整:? 查詢 MySQL 的配置檔案(my.cnf 或者 my.ini)? 在 [mysqld] 部分新增一句(如果存在,調整其值就可以):?max_allowed_packet=10M? 重啟 MySQL 服務就可以了。這裡設定的是 10MB 。