mysql 增刪改查時的錯誤解決方案大全
資訊1:Error: Access denied for user: 'linanma@localhost' (Using password: YES)
錯誤分析:這個是新手安裝論壇經常出現的問題之一,產生原因一般有兩種
1、資料庫使用者名稱或密碼不正確引起的錯誤。
2、config.inc.php的屬性不是777。
解決方案:
1、聯絡空間服務商詢問正確的資料庫伺服器使用者名稱和密碼,記住是資料庫伺服器的密碼,別弄錯了。
如果是安裝的時候出現這個問題,那就把正確的使用者名稱和密碼填到輸入框中。
2、修改論壇根目錄下的config.inc.php屬性為777。用ftp軟體登入到ftp網站,
選擇config.inc.php點擊右鍵-〉屬性 設定為可讀可寫(即777)。
資訊2:Error: Unknown column 'msignature' in 'field list'
錯誤分析:字面意思是說缺少'msignature'欄位,一般情況是因為安裝外掛程式
時修改了程式檔案而沒有升級資料庫造成的,或者是因為資料庫和程式檔案不
相匹配,也就是說資料庫的版本和程式檔案的版本不同(這裡說都是discuz的
版本,比如資料庫用的是discuz2.x的而程式檔案是discuz4.0的,那肯定會
出現上述問題)。
解決方案:如果是安裝了外掛程式的,請仔細察看該外掛程式安裝的說明檔案,看有沒
有提供升級資料庫的SQL語句,找到後以管理的身份進入“系統設定”-〉“數
據庫升級”-〉拷貝你找到的升級資料庫SQL語句到上面-〉“提交”。如果還
是沒能解決問題的話,刪除伺服器上你修改過的檔案,之後重新上傳該檔案到
相應目錄(即,用你機子上的沒有修改過的檔案替換伺服器上的檔案)。如果
還沒有解決問題,那請先確定你的資料庫是discuz哪個版本的,之後上傳這個
版本的程式檔案到伺服器。
資訊3:Error: Can't open file: 'cdb_forums.MYI'. (errn 145)
錯誤分析:伺服器非法關機,有可能會對部分資料庫造成一定影響。一般運行會報錯
**.MYI不能開啟。
Can't find file: '***.MYI'
解決方案:用你下載的論壇壓縮包裡面utilities目錄下的repair.php修複一下
具體方法:上傳repair.php到論壇根目錄下,
然後在瀏覽器運行http://你的論壇地址/repair.php
一般點擊第一個連結“repair.php?html=1&check=1”就可以修複了,
如果不能修複可以嘗試驗擊第二個串連“repair.php?check=1&iterations=5”
就可以了。
溫馨提示:修複完表操作以後一定記得要從伺服器刪除這個檔案repair.php
資訊4:SQL: Select groupid,url,title FROM cdb_onlinelist Where 1 orDER BY displayorder Error: Got error 127 from storage engine Errno.: 1030
錯誤分析:這個問題是由於所查詢的表損壞造成的。
解決方案:同上資訊3
也可以通過恢複以前的備份資料來解決這個問題
資訊5:SQL: Create TABLE cdb_access ( uid mediumint(8) unsigned NOT NULL default '0', fid smallint(6) unsigned NOT NULL default '0', allowview tinyint(1) NOT NULL default '0', allowpost tinyint(1) NOT NULL default '0', allowreply tinyint(1) NOT NULL default '0', allowgetattach tinyint(1) NOT NULL default '0', PRIMARY KEY (uid,fid)) ENGINE=MyISAM DEFAULT CHARSET=latin1 Error: 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 'DEFAULT CHARSET=latin1' at line 1 Errno.: 1064
錯誤分析:語句最後面的DEFAULT CHARSET=latin1造成的錯誤,這個是因為MySQL
版本差異產生的,4.1以後的版本就可以了,4.1以前的版本就會提示上面這樣的錯誤。
解決方案:在匯入資料前先把DEFAULT CHARSET=latin1手動去掉再匯入。用文本編
輯器(如:記事本)開啟備份檔案,尋找DEFAULT CHARSET=latin1 替換成空,
也就是刪除掉這句。
資訊6:Error: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
錯誤分析:造成此錯誤有兩種情況
1、MySQL伺服器沒有開啟。
2、php編譯的時候沒有編譯MySQL。
解決方案:很顯然兩種情況都是伺服器造成的。所以聯絡儘快聯絡空間服務商,
反映情況讓他們去解決。如果是在自己的機子上本地安裝那麼看看是否開啟了
MySQL伺服器,沒有的話先開啟。
資訊7:Error: Table 'test.cdb_sessions' doesn't exist
錯誤分析:這個問題是由於所查詢的表不存在造成的
解決方案:可以通過恢複以前的備份資料來解決這個問題。以管理員的身份登入你的
論壇-〉“系統設定”-〉“資料恢複”如果備份的資料在自己機子上,那麼點擊瀏覽
選擇你的備份檔案,之後點擊“提交”。如果備份資料在伺服器上,那麼在下在找到
你要恢複的備份點擊“匯入”。
溫馨提示:所有的類似(Table 'table_name' doesn't exist )都可以通過這個
方法來解決。建議盡量不要把備份放在伺服器上,以免別人惡意下載,或者執行完導
入後及時刪除備份。
資訊8:Error: 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 at line 1 Errno.: 1064
錯誤分析:類似這樣的錯誤是sql語句錯誤,一般是由於在安裝外掛程式或其他動作時改
動了程式檔案造成的。
解決方案:可以通過替換出錯的檔案來解決。重新上傳同名的出錯檔案到伺服器,
比如你在裝外掛程式的時候修改了viewthread.php檔案,結果出錯了,那麼你可以把你
自己機子上的沒有修改過的viewthread.php上傳上去,系統會提示你已經有一個
viewthread.php檔案,你只要選擇替換(有些系統叫“覆蓋”)就可以了。
溫馨提示:安裝外掛程式時當需要修改原程式是最好先備份該程式檔案,以備不時之需。
資訊9:SQL: Create DATABASE db1 Error: Access denied for user: 'f54_daneoli@203.104.103.186' to database 'db1'
錯誤分析:這個錯誤是由於資料庫使用者的許可權引起的,也就是說你沒有建立資料庫的
許可權(Create DATABASE 'db_name'),很多空間都有這個限制。
解決方案:向空間供應商詢問你可以使用的資料庫名,安裝discuz是在資料庫一欄填
上此名即可。
溫馨提示:一般的空間都提供了一個管理平台,在上面會告訴你你的所有資訊,當然
也包括資料庫名
資訊10:Error: Got error 28 from table handler Errno.: 1030
錯誤分析:這個錯誤是由於資料庫所在磁碟空間已滿造成的。
解決方案:可以通過刪除一些資料庫記錄檔來解決,若不行的話就得和空間商聯絡
增加資料庫空間。
資訊11:Error: Client does not support authentication protocol requested by server; consider upgrading MySQL client Errno.: 1251
錯誤分析:[援引官方]如果你升級mysql到4.1以上版本後遇到以上問題,請先確定
你的mysql client 是4.1或者更高版本.(WINDOWS下有問題你就直接跳到下面看
解決方案了,因為MYSQL 在WINDOWS是client和server一起裝上了的)
解決方案:
1、windows平台
主要是改變串連MySQL的帳戶的加密方式,MySQL4.1/5.0是通過PASSWORD這種方
式加密的.可以通過以下兩種方法得到解決:
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';
2、Unix平台
linux平台下首先確定是否安裝過MySQL的用戶端,這個用rpm安裝很簡單:
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';
資訊12:Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
錯誤分析:造成此錯誤有兩種情況1、MySQL伺服器沒有開啟。2、php編譯的時候
沒有編譯MySQL。
解決方案:很顯然兩種情況都是伺服器造成的。所以聯絡儘快聯絡空間服務商,
反映情況讓他們去解決。
資訊13:SQL: Select COUNT(*) FROM cdb_banned Where (ip1='219' or ip1='-1') AND (ip2='77' or ip2='-1') AND (ip3='213' or ip3='-1') AND (ip4='229' or ip4='-1') Error: No Database Selected Errno.: 1046
錯誤分析:字面意思,沒有資料庫被選擇。
兩種情況:
1、資料庫被刪除。
2、config.inc.php設定檔錯誤。
解決方案:針對上述情況1、先重新安裝論壇,登入後進入“系統設定”-〉
“資料恢複”點擊“瀏覽”選擇你以前的備份檔案,點擊“提交”。
上述情況2、用文字編輯器開啟論壇根目錄下的config.inc.php填寫正確
的各項資訊。對照下面的填寫。
$dbhost = 'localhost'; // database server
// 資料庫伺服器
$dbuser = 'dbuser'; // database username // 資料庫使用者名稱
$dbpw = 'dbpasswd'; // database password // 資料庫密碼
$dbname = 'dbname'; // database name // 資料庫名
溫馨提示:程式檔案出錯時在替換檔案時不要替換config.inc.php,
否則就會出現上面的錯誤。
資訊14:Error: Unknown column 'column_name' in 'field list' 程式檔案跟資料庫有衝突,請使用正確的程式檔案上傳上去覆蓋
錯誤分析:字面意思缺少column_name欄位。可能是1、因為安裝某外掛程式
後沒有相應地升級資料庫,或者2、是資料庫和程式檔案不匹配,即版本
不同造成的。
解決方案:1、到後台設定裡面升級資料庫即可。登入後進入“系統設定”
-〉“資料恢複”點擊“瀏覽”選擇你以前的備份檔案,點擊“提交”。或者
在下面列出的備份當中選擇一個你需要的復原點擊其後的“匯入”。
2、將匹配資料庫的程式檔案上傳至伺服器替換原有檔案除config.inc.php之外。
資訊15:SQL: Array Error: 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 'Array' at line 1 Errno.: 1064
錯誤分析:類似這樣的錯誤是sql語句錯誤,一般是由於在安裝外掛程式或其他動作
時改動了程式檔案造成的。
解決方案:可以通過替換出錯的檔案來解決,即重新上傳程式檔案。
溫馨提示:安裝外掛程式時當需要修改原程式是最好先備份該程式檔案,以備不時之需。
資訊16:SQL: Insert INTO cdb_pms VALUES(,'楊小邪', '1', '7','inbox', '1', '您有新的合影請求','1125764991', '楊小邪向您發起了合影請求。請至照相館查看和您相關的合影請求並進行相關操作。') Error: Column count doesn't match value count at row 1 Errno.: 1136
錯誤分析:資料表的欄位和values裡的欄位不搭配。產生的原因大體上有兩種:
1、發短訊息時產生,程式檔案和資料庫檔案不匹配造成此錯誤。
2、資料恢複時產生,備份的資料和使用的資料結構不相同造成的。
解決方案:
1、用正確的和資料庫相匹配的程式檔案(即,資料庫的discuz的版本和程式文
件的第scuz版本一致)替換原有的程式檔案除config.inc.php之外。
2、把使用中的資料庫結構恢複成和備份資料的結構相同,資料成功恢複後再
升級資料庫。
資訊17:SQL: Insert INTO cdb_settings VALUES ('delayreply', 0) Error: Duplicate entry 'delayreply' for key 1 Errno.: 1062
錯誤分析:在插記錄到資料表中時,已經有跟此記錄主鍵相同的紀錄存在於該
表中。因為主鍵具有唯一性所以產生此錯誤。
解決方案:既然已經有的此記錄那就不用插入了,此時無為勝有為啊。如果一
定要插入的話那就先刪除掉原來的紀錄了。進入phpmyadmin裡選擇你要刪除
的紀錄所在的表,點擊瀏覽,找到你要刪除的記錄後點擊紅色的叉(有些是
“刪除”)
資訊18:SQL: REPLACE INTO cdb_statvars (type, variable, value) VALUES ('main', 'bestmem', '<a href="viewpro.php?username=%27.%A6%B1ucca.%21">'.Ρucca.!</a>') Error: 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 '.Ρucca.!')' at line 2 Errno.: 1064
錯誤分析:這種類型的錯誤多發生在安裝外掛程式時自行修改程式檔案後,針對
上面的這個問題是SQL語句的錯誤,多了一個 '
解決方案:用文字編輯器(如:記事本)開啟出錯的檔案找到這段代碼,
去掉SQL語句中"bold">後面的'即可。
資訊19:SQL: Create TABLE cdb_sessions ( sid char(6) character set latin1 collate latin1_bin NOT NULL default , ip1 tinyint(3) unsigned NOT NULL default '0', ip2 tinyint(3) unsigned NOT NULL default '0', ip3 tinyint(3) unsigned NOT NULL default '0', ip4 tinyint(3) unsigned NOT NULL default '0', uid mediumint(8) unsigned NOT NULL default '0', username char(15) NOT NULL default , groupid smallint(6) unsigned NOT NULL default '0', styleid smallint(6) unsigned NOT NULL default '0', invisible tinyint(1) NOT NULL default '0', `action` tinyint(1) unsigned NOT NULL default '0', lastactivity int(10) unsigned NOT NULL default '0', fid smallint(6) unsigned NOT NULL default '0', tid mediumint(8) unsigned NOT NULL default '0', KEY sid (sid)) TYPE=HEAP MAX_ROWS=50000 Error: 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 'collate latin1_bin NOT NULL default , ip1 tinyint(3) unsigne Errno.: 1064
錯誤分析:這個問題也是因為MySQL的版本不同造成的
解決方案:匯入前手動修改要匯入的檔案。去掉
character set latin1 collate latin1_bin即可,用文字編輯器
(如:記事本等等)代開出錯的備份的檔案,尋找
character set latin1 collate latin1_bin,找到後逐一刪除,
或者開啟替換在尋找欄輸入:character set latin1 collate latin1_bin
在替換欄裡什麼也不要輸入,保留空白,之後點“全部替換”。
資訊20:SQL: SHOW Create TABLE cdb_rsscaches Error: Can't find file: 'cdb_rsscaches.MYD' (errn 2) Errno.: 1017
錯誤分析:伺服器非法關機,有可能會對部分資料庫造成一定影響。
一般運行會報錯
**.MYD不能開啟。
Can't find file: '***.MYI'
解決方案:用你下載的論壇壓縮包裡面utilities目錄下的repair.php修複一下
具體方法:上傳repair.php到論壇根目錄下,然後在瀏覽器運行
http://你的論壇地址/repair.php
一般點擊第一個連結“repair.php?html=1&check=1”就可以修複了,
如果不能修複可以嘗試驗擊第二個串連“repair.php?check=1&iterations=5”
就可以了。
溫馨提示:修複完表操作以後一定記得要從伺服器刪除這個檔案repair.php
資訊21:SQL: Create TABLE `cdb_access` ( `uid` mediumint(8) unsigned NOT NULL default '0', `fid` smallint(6) unsigned NOT NULL default '0', `allowview` tinyint(1) NOT NULL default '0', `allowpost` tinyint(1) NOT NULL default '0', `allowreply` tinyint(1) NOT NULL default '0', `allowgetattach` tinyint(1) NOT NULL default '0', `allowpostattach` tinyint(1) NOT NULL default '0', PRIMARY KEY (`uid`,`fid`)) ENGINE=MyISAM Error: You have an error in your SQL syntax near 'ENGINE=MyISAM' at line 1 Errno.: 1064
錯誤分析:MySQL版本引起的SQL語句錯誤。
解決方案:用文字編輯器(如:記事本之類的)開啟出錯的檔案,尋找ENGINE=MyISAM,刪除即可。