本文目錄一覽:
- 1、新手 SQL查詢語句出錯,MYSQL伺服器版本: 5.0.45-community-nt-log.這是個論壇發帖的資料庫,求大蝦指點..
- 2、Mysql已經是5.1版本了為什麼還提示您的資料庫版本過低,Mysql版本要求大於等於5
- 3、mysql服務啟動不了,報1067錯誤如何解決? 版本為5.6.20的
- 4、mysql 服務無法啟動
- 5、mysqL安裝出現1045問題該怎麼解決呢
新手 SQL查詢語句出錯,MYSQL伺服器版本: 5.0.45-community-nt-log.這是個論壇發帖的資料庫,求大蝦指點..
解決方案如下:
1. 進入管理mysql的phpmyadmin
2. 在左則選中自己的資料庫
3. 在右則勾選中錯誤信息中的那個』wxpetdata』表
4. 滾動屏幕到下面,有個下拉菜單(With selected:),選擇」Repair table」
———————————————————————
或者可以這樣
wxpetdata被標記有問題,需要修復。於是趕快恢復歷史數據,上網查找原因。最終將問題解決。解決方法如下:
找到mysql的安裝目錄的bin/myisamchk工具,在命令行中輸入:
myisamchk -c -r ../data/dedecmsv4/dede_archives.MYI
然後myisamchk 工具會幫助你恢複數據表的索引。重新啟動mysql,問題解決。
問題分析:
1、錯誤產生原因,有網友說是頻繁查詢和更新dede_archives表造成的索引錯誤,因為我的頁面沒有靜態生成,而是動態頁面,因此比較同意這種說法。還有說法為是MYSQL資料庫因為某種原因而受到了損壞,如:資料庫伺服器突發性的斷電、在提在資料庫表提供服務時對錶的原文件進行某種操作都有可能導致MYSQL資料庫表被損壞而無法讀取數據。總之就是因為某些不可測的問題造成表的損壞。
問題的編號為145
2、問題解決辦法。
當你試圖修復一個被破壞的表的問題時,有三種修復類型。如果你得到一個錯誤信息指出一個臨時文件不能建立,刪除信息所指出的文件並再試一次–這通常是上一次修復操作遺留下來的。
這三種修復方法如下所示:
% myisamchk –recover –quick /path/to/tblName
% myisamchk –recover /path/to/tblName
% myisamchk –safe-recover /path/to/tblName
第一種是最快的,用來修復最普通的問題;而最後一種是最慢的,用來修復一些其它方法所不能修復的問題。
檢查和修復MySQL數據文件
如果上面的方法無法修復一個被損壞的表,在你放棄之前,你還可以試試下面這兩個技巧:
如果你懷疑表的索引文件(*.MYI)發生了不可修復的錯誤,甚至是丟失了這個文件,你可以使用數據文件(*.MYD)和數據格式文件(*.frm)重新生成它。首先製作一個數據文件(tblName.MYD)的拷貝。重啟你的MySQL服務並連接到這個服務上,使用下面的命令刪除表的內容:
mysql DELETE FROM tblName;
在刪除表的內容的同時,會建立一個新的索引文件。退出登錄並重新關閉服務,然後用你剛才保存的數據文件(tblName.MYD)覆蓋新的(空)數據文件。最後,使用myisamchk執行標準的修復(上面的第二種方法),根據表的數據的內容和表的格式文件重新生成索引數據。
如果你的表的格式文件(tblName.frm)丟失了或者是發生了不可修復的錯誤,但是你清楚如何使用相應的CREATE TABLE語句來重新生成這張表,你可以重新生成一個新的.frm文件並和你的數據文件和索引文件(如果索引文件有問題,使用上面的方法重建一個新的)一起使用。首先製作一個數據和索引文件的拷貝,然後刪除原來的文件(刪除數據目錄下有關這個表的所有記錄)。
啟動MySQL服務並使用當初的CREATE TABLE文件建立一個新的表。新的.frm文件應該可以正常工作了,但是最好你還是執行一下標準的修復(上面的第二種方法)。
3、myisamchk工具介紹(見mysql的官方手冊)
可以使用myisamchk實用程序來獲得有關資料庫表的信息或檢查、修復、優化他們。myisamchk適用MyISAM表(對應.MYI和.MYD文件的表)。
調用myisamchk的方法:
shell myisamchk [options] tbl_name …
options指定你想讓myisamchk做什麼。在後面描述它們。還可以通過調用myisamchk –help得到選項列表。
tbl_name是你想要檢查或修復的資料庫表。如果你不在資料庫目錄的某處運行myisamchk,你必須指定資料庫目錄的路徑,因為myisamchk不知道你的資料庫位於哪兒。實際上,myisamchk不在乎你正在操作的文件是否位於一個資料庫目錄;你可以將對應於資料庫表的文件拷貝到別處並且在那裡執行恢復操作。
如果你願意,可以用myisamchk命令行命名幾個表。還可以通過命名索引文件(用「 .MYI」後綴)來指定一個表。它允許你通過使用模式「*.MYI」指定在一個目錄所有的表。例如,如果你在資料庫目錄,可以這樣在目錄下檢查所有的MyISAM表:
shell myisamchk *.MYI
如果你不在資料庫目錄下,可通過指定到目錄的路徑檢查所有在那裡的表:
shell myisamchk /path/to/database_dir/*.MYI
你甚至可以通過為MySQL數據目錄的路徑指定一個通配符來檢查所有的資料庫中的所有表:
shell myisamchk /path/to/datadir/*/*.MYI
推薦的快速檢查所有MyISAM表的方式是:
shell myisamchk –silent –fast /path/to/datadir/*/*.MYI
如果你想要檢查所有MyISAM表並修復任何破壞的表,可以使用下面的命令:
shell myisamchk –silent –force –fast –update-state \
-O key_buffer=64M -O sort_buffer=64M \
-O read_buffer=1M -O write_buffer=1M \
/path/to/datadir/*/*.MYI
該命令假定你有大於64MB的自由內存。關於用myisamchk分配內存的詳細信息,參見5.9.5.5節,「myisamchk內存使用」。
當你運行myisamchk時,必須確保其它程序不使用表。否則,當你運行myisamchk時,會顯示下面的錯誤消息:
warning: clients are using or haven’t closed the table properly
這說明你正嘗試檢查正被另一個還沒有關閉文件或已經終止而沒有正確地關閉文件的程序(例如mysqld伺服器)更新的表。
如果mysqld正在運行,你必須通過FLUSH TABLES強制清空仍然在內存中的任何錶修改。當你運行myisamchk時,必須確保其它程序不使用表。避免該問題的最容易的方法是使用CHECK TABLE而不用myisamchk來檢查表。
Mysql已經是5.1版本了為什麼還提示您的資料庫版本過低,Mysql版本要求大於等於5
你的圖裡顯示你裝了兩個MySQL:
MySQL 5.1.28
MySQL 4.0.26
提示MySQL版本過低,估計是檢測到你的MySQL 4.0.26的緣故。
試試刪掉MySQL 4.0.26
mysql服務啟動不了,報1067錯誤如何解決? 版本為5.6.20的
這種問題,一般幾種情況,如果你按照如下方法檢查,應該是可以排除你的問題(這個方法,也是我經常使用的)。
1、檢查埠是否被佔用,檢查埠的方法很多,不管是win還是liunx都很多
2、mysql的bin目錄程序是否被病毒感染,我有幾次就是檢查了半天,使用另外電腦上面的程序替換了就ok,因為當時原有的程序備份的,後來使用一個新的查毒軟體才查出來,不要太相信你電腦上面已經安裝的殺毒軟體,有時候它也是不準確的。
3、配置文件,如果不太熟悉配置文件裡面的項目,有一個很簡單的方法,就是找一個能夠使用或者原始的配置文件替換上去,如果ok了,就是配置文件的原因。
4、你電腦上面的其他軟體或者環境影響了,可以把你現在的程序在另外一台電腦上面試試(最好是乾淨的,就是沒有安裝過mysql的),如果可以,呵呵。你知道的。
希望這些方法能夠幫到你。
mysql 服務無法啟動
這個問題出現在MySQL5.7之後的版本,主要的原因是MySQL會在最新的check point完成後都會在redolog寫一個一位元組的MLOG_CHECKPOINT標記,用來標記在此之前的redo都已checkpoint完成。
如果處於任何原因沒有找到這個標記,那麼整個redolog文件都會被忽略。出現這個錯誤的話,最好是有備份進行恢復,如果沒有做好備份,那隻能採取非常規的啟動方式,但可能造成數據丟失。
介紹
MySQL是一個關係型資料庫管理系統,由瑞典MySQLAB公司開發,屬於Oracle旗下產品。MySQL是最流行的關係型資料庫管理系統之一,在WEB應用方面,MySQL是最好的RDBMS應用軟體之一。
MySQL是一種關係型資料庫管理系統,關係資料庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
mysqL安裝出現1045問題該怎麼解決呢
解決辦法:
mysqladmin -h hostname flush-privileges
use mysql; update user set password =password(‘yourpass’) where user=’root’
出現無法連接資料庫的話,命令行用root用戶登陸,敲下面命令:
SET PASSWORD FOR sns@’localhost’=OLD_PASSWORD(‘sns’);
然後刷新mysql許可權
FLUSH PRIVILEGES;
導入數據的方法 mysql -u name -p –default-character-set=utf8 databasename path\*.sql
create database name character set utf8;
如果出現#1251 – Client does not support authentication protocol requested by server;的錯誤:
解決辦法:先用root登錄MYSQL伺服器,執行
mysqlset password for user1@”localhost”=old_password(‘yourPassword’);
原因是因為你使用的mysql伺服器版本中使用了新的密碼驗證機制,這需要客戶端的版本要在4.0以上,原來的密碼函數被改為old_password();,這樣使用password()生成的密碼在舊的版本上的客戶端就不好使了,而PHP中的MYSQL客戶端都是3.23的(當然,mysqli的擴展除外),問題就在這了。
原創文章,作者:EQUZ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/137870.html