引用 | 編輯
musclenet
2007-01-14 01:20 |
樓主
▼ |
||
x0
Connect(0) to MySQL failedThe URL Is: http://musclenet.dyndns.org/index.php? MySQL Server Error: Can't connect to MySQL server on 'dbhost' (10055) ( 2003 ) You Can Get Help In: http://www.phpwind.net 最近我的網站三不五時都會出現這樣的問題, 連不上 Mysql database , 請問這是我電腦的問題嗎 ? 如何直接修復我的資料庫呢 ? 還是又要重新安裝一次 Appserv ? 我每次遇到這個問題的作法都是, 直接重安裝 Appserv, 然後在把網站重 新載入一次(匯入備份), 請問一下, 我應該有更高明的作法吧 ?! x0
|
引用 | 編輯
musclenet
2007-01-14 01:36 |
1樓
▲ ▼ |
轉貼自 PHPWIND 官網, 不知道是不是這樣子可以解決
mysql錯誤及解決全攻略(不斷完善中) 說明:如果遇到數據庫出錯的問題修改相應的代碼後一般要重啓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; 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('); 方法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 把前面的#去了 具體的因爲自己的電腦沒有出現10055錯誤,如果哪位出現了可以直接PM我,大家同共探讨,同共找原因 請大家把自己遇到的mysql 問題及解決方法在此跟帖(最好寫上自己的系統環境),方便大家查閱。方法不一定完全有效,我們共同努力,不斷完善 x0 |
引用 | 編輯
musclenet
2007-01-14 03:20 |
2樓
▲ ▼ |
1. 10055 的錯誤訊息是表示 buffer 不夠, 但是為什麼buffer 已滿時無法連線至localhost ?
2. 請問通常是什麼樣的情境下, 會出現buffer 已滿無法連線 ? 是因為同時有太多人在 嘗試連上我的網站嗎 ? 像數位這樣的大網站, 想請教buffer 設多大 ? 100M 還是 多少呢 ? x0 |
引用 | 編輯
月光
2007-01-14 04:07 |
3樓
▲ ▼ |
請打開 data/sql_config.php 補上 數據庫服務器 ip 或域名...
如果php Server 和 Mysql Server是同一台伺服器可設 127.0.0.1 或 localhost x0 |
引用 | 編輯
musclenet
2007-01-14 18:45 |
4樓
▲ |
我看原本的data/sql_config.php 設定就有'localhost'
應該沒有錯, 我用 http://localhost/ 可以連上 , 但我一連上網後(ADSL固定IP), mysql server 馬上又出錯了....10055 且我的連網速度相當得慢, 請問我有可能是中毒或其他問題嗎 ? 我的buferr 也加大到 512M, 這樣很夠了吧 ! 我重新啟動電腦與sql server 後, 網站都沒有問題, 但幾分鐘後又出現 10055 (2003), 齁, 我快昏倒了, 這到底是哪裡的問題 ......... 1 hour later ...................... 經過幾台電腦的交叉測試 我發現我的網站那台電腦八成是中毒了, 我只能重新了 x0 |