TShopping

 找回密碼
 註冊
搜索
查看: 4396|回復: 3
打印 上一主題 下一主題

[教學] MYSQL資料庫修復與檢查

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-19 11:52:20 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
 
Push to Facebook
先到/var/lib/mysql/目錄下

切換到你資料庫的目錄下


如/var/lib/mysql/test


輸入myisamchk -e -s *.MYI

檢查XXX.MYI是否故障

記的一定要先關閉MYSQL喔!不然資料庫會壞掉


快速修復資料庫的方法!
有的時候因為掉電或者其他原因導致資料庫損壞,我們可以使用mysql自帶的mysqlcheck命令來快速修復所有的資料庫或者特定的資料庫;例如
檢查優化並修復所有的資料庫用:

CentOS 6
  1. # mysqlcheck -A -o -r -p
  2. Enter password:
  3. database1 OK
  4. database2 OK
  5. ----------
複製代碼

CentOS 7
  1. mysqlcheck --repair --all-databases -uroot -p
複製代碼

修復指定的資料庫用
# mysqlcheck -A -o -r Database_NAME -p
即可

另外如果只是對某個表進行修復可以用:myisamchk或isamchk
其中myisamchk適用於MYISAM類型的資料表,而isamchk適用於ISAM類型的資料表。這兩條命令的主要參數相同,一般新的系統都使用MYISAM作為缺省的資料表類型,這裏以myisamchk為例子進行說明。當發現某個資料表出現問題時可以使用:
myisamchk tablename.MYI


進行檢測,如果需要修復的話,可以使用:
myisamchk -of tablename.MYI


關於myisamchk的詳細參數說明,可以參見它的使用幫助。需要注意的時在進行修改時必須確保MySQL伺服器沒有訪問這個資料表,保險的情況下是最好在進行檢測時把MySQL伺服器Shutdown掉。


另外可以把下面的命令放在你的rc.local裏面啟動MySQL伺服器前:


[ -x /tmp/mysql.sock ] && /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI
其中的/tmp/mysql.sock是MySQL監聽的Sock檔位置,對於使用RPM安裝的用戶應該是/var/lib/mysql/mysql.sock,對於使用源碼安裝則是/tmp/mysql.sock可以根據自己的實際情況進行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL資料庫存放的位置。

最佳化資料表
OPTIMIZE TABLE `表名`,`表名`,.....;

當我們按照原來的方式通過PHP存取MySQL資料庫時,就算設置了表的默認字元集為utf8並且通過UTF-8編碼發送查詢,你會發現存入資料庫的仍然是亂碼。問題就出在這個connection連接層上。解決方法是在發送查詢前執行一下下面這句:


SET NAMES ‘utf8’;
不過最好的方法還是在 my.cnf 中的 [client] 和 [mysqld] 章節中都加上一行 default-character-set=utf8
就可以了:


[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8





 

臉書網友討論
2#
發表於 2012-1-24 00:42:11 | 只看該作者
說的不錯  

版主招募中

3#
發表於 2012-1-24 00:51:43 | 只看該作者
頂你一下,好貼要頂!  


4#
發表於 2012-1-24 00:56:04 | 只看該作者
幫你項項吧  


*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-4-25 22:54 , Processed in 0.051718 second(s), 26 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表