天天看點

mysql錯誤及解決(1)

說明:如果遇到資料庫出錯的問題修改相應的代碼後一般要重新開機mysql。如果遇到mysql的問題可以先重新開機一下mysql 看看問題能否解決。

1005:建立表失敗 

1006:建立資料庫失敗 

1007:資料庫已存在,建立資料庫失敗 

1008:資料庫不存在,删除資料庫失敗 

1009:不能删除資料庫檔案導緻删除資料庫失敗 

1010:不能删除資料目錄導緻删除資料庫失敗 

1011:删除資料庫檔案失敗 

1012:不能讀取系統表中的記錄 

1016: 無法打開檔案

  擊後 開始=>所有程式=>附件=>指令提示符

  輸入 mysql 所在硬碟盤符

   cd mysql 所在目錄

   cd bin

  輸入 myisamchk -f d:usr/local/mysql/data/bbs/pw_members.myi

  ps : d:usr/local/mysql/data/bbs 是你論壇資料庫的路徑

   -f 根據具體情況選擇,一般也可以選擇 -r 

   注意你的 系統c盤或放資料庫的硬碟空間是否足夠,一般小于 1g 很容易出現錯誤。

  或用mysqlcheck指令進行修複。具體的方法:利用指令行進入mysql/bin目錄,執行

mysqlcheck -o -r phpwind -uroot -p                                                    

其中phpwind是你資料庫的名稱,root是你的資料庫使用者名,然後會提示你輸入密碼。  

然後就會修複你的資料庫。

1020:記錄已被其他使用者修改 

1021:硬碟剩餘空間不足,請加大硬碟可用空間 

1022:關鍵字重複,更改記錄失敗 

1023:關閉時發生錯誤 

1024:讀檔案錯誤 

1025:更改名字時發生錯誤 

1026:寫檔案錯誤 

1032:記錄不存在 

1036:資料表是隻讀的,不能對它進行修改 

1037:系統記憶體不足,請重新開機資料庫或重新開機伺服器 

1038:用于排序的記憶體不足,請增大排序緩沖區 

1040:已到達資料庫的最大連接配接數,請加大資料庫可用連接配接數 

1041:系統記憶體不足 

1042:無效的主機名 

1043:無效連接配接 

1044:目前使用者沒有通路資料庫的權限 

1045:不能連接配接資料庫,使用者名或密碼錯誤 

方法:確定論壇data目錄下的sql_config.php使用者名與密碼都正确.如果使用者忘記了資料庫的密碼,可以按如下方式進行密碼的修改:

如果 mysql 正在運作,首先停止。

啟動 mysql :bin/safe_mysqld --skip-grant-tables ; 

就可以不需要密碼就進入 mysql 了。

然後就是 

>use mysql

>update user set password=password("new_pass") where user="root";

>flush privileges;

在資料庫的使用者名和密碼正确的情況一下,要確定data目錄有寫入的權限。對于windows主機可以設定users使用者組在data目錄有寫入的權限。對類linux系統可以用chmod -r 777 data來修改。

1040: 最大連接配接數

  方法:在my.ini 修改max_connections=100為max_connections=1000或更大,重新開機mysql

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:字段值重複,入庫失敗 

方法:

  1.如果出類似主碼為"65535"的錯誤,可以檢視相關表的自增字段,将字段值改在就可以

  2.確定相關資料表中主碼重複的字段是否存在,如果存在删除這條記錄

  3.備份資料庫,修複相關表(注:這種情況比較常見,如pw_posts表,對表進行修複的時候不要忘    記備份).

1169:字段值重複,更新記錄失敗 

1177:打開資料表失敗 

1180:送出事務失敗 

1181:復原事務失敗 

1203:目前使用者和資料庫建立的連接配接已到達資料庫的最大連接配接數,請增大可用的資料庫連接配接數或重新開機資料庫 

1205:加鎖逾時 

1211:目前使用者沒有建立使用者的權限 

1216:外鍵限制檢查失敗,更新子表記錄失敗 

1217:外鍵限制檢查失敗,删除或修改主表記錄失敗 

1226:目前使用者使用的資源已超過所允許的資源,請重新開機資料庫或重新開機伺服器 

1227:權限不足,您無權進行此操作 

1235:mysql版本過低,不具有本功能

1250:用戶端不支援伺服器要求的認證協定,請考慮更新用戶端。

1251:client does not support authentication protocol requested by server; consider upgrading mysql client

方法1:mysql> set password for 

-> ' some_user '@' some_host ' = old_password(' newpwd '); 

結合我們的實際情況,在 mysql command line client 下運作: 

set password for root@localhost = old_password('123456');

方法2:

mysql> update mysql.user set password = old_password('newpwd')

   -> where host = 'some_host' and user = 'some_user';

mysql> flush privileges;

上面紅色的部分請按自己實際情況修改。

10061: 方法:    啟動這台機器上的mysql服務 

  如服務啟動失敗

  一定是你的my.ini檔案出了差錯,

  mysql服務不能正常啟動 

  你删除了它後,mysql就會按其預設配置運作,

  那就沒有問題了

10048:

  建議在my.ini檔案中修改最大連接配接數,

  把 mysql_connect() 方法都改成了 mysql_pconnect() 方法.

  要修改mysql_pconnect(),可以在論壇的data目錄的sql_config.php中

  $pconnect = 0; //是否持久連接配接

  修改成$pconnect = 1;

  開啟防重新整理,嚴禁重新整理太快.

10055:沒有緩存空間可利用

  方法:檢視下你的c盤空間是否已經滿,清除一些沒有用的檔案.

  可以在背景的"論壇核心設定","核心功能設定"裡"程序優化"開啟,"gzip 壓縮輸出"關閉.

查找了一下10055(沒有緩存空間可利用)出錯的原因,分析了my.ini的配制檔案,在my.ini中如下:

default-storage-engine=innodb

innodb_additional_mem_pool_size=2m

innodb_flush_log_at_trx_commit=1

innodb_log_buffer_size=1m

innodb_buffer_pool_size=10m

innodb_log_file_size=10m

innodb_thread_concurrency=8

覺得可以把innodb_buffer_pool_size=10m 加大如100m或是1000m

以上是對mysql5的

如果是mysql4可以在my.ini中增加如下:

#innodb_data_file_path = ibdata1:2000m;ibdata2:2000m

#innodb_data_home_dir = c:ibdata

#innodb_log_group_home_dir = c:iblogs

#innodb_log_arch_dir = c:iblogs

#set-variable = innodb_mirrored_log_groups=1

#set-variable = innodb_log_files_in_group=3

#set-variable = innodb_log_file_size=5m

#set-variable = innodb_log_buffer_size=8m

#innodb_flush_log_at_trx_commit=1

#innodb_log_archive=0

#set-variable = innodb_buffer_pool_size=16m

#set-variable = innodb_additional_mem_pool_size=2m

#set-variable = innodb_file_io_threads=4

#set-variable = innodb_lock_wait_timeout=50