檢查mysql資料庫是否存在壞表指令碼

2022-03-18 18:28:56 字數 2183 閱讀 6939

1 #!/bin/bash

2#此指令碼的主要用途是檢測mysql伺服器上所有的db或者單獨db中的壞表

3#變數說明 pass mysql賬戶口令 name mysql賬號名稱 data_path mysql目錄路徑 directory_list 目錄列表 file_list檔案列表 db_name 資料庫名稱 repair_count單庫中待修復的表總數

4#變數說明 repair_count_all所有庫中待修復的表總數 mysql_version mysql版本 _file_name 資料表名稱

5echo -e "

此指令碼的主要用途是檢測mysql伺服器上所有的資料庫或者單獨資料庫中的壞表\n\n

"6 pass=123456

7 name=root

8 read -p "

輸入mysql儲存路徑:

"choose

9 data_path=$choose

10unset choose

11 read -p "

請輸入mysql命令路徑:

"mysql_version

12 #標準輸入、標準輸出、標準錯誤輸出的檔案標示符 由 0、1

、2標識

13 read -p "

請選擇是檢查伺服器上所有資料庫還是指定的資料庫 1:檢查全部資料庫 2:只檢查指定資料庫:

"choose

14if[ $choose ==1];then

15cd $data_path

16for directory_list in $(ls)17

do18

if[-d $directory_list ];then

19if["

mysql

"!="

$"-a "

test

"!="

$"];then

20cd $

21echo

"當前檢查資料庫為:"$

22for file_list in $(ls *.frm)

23do

24 _file_name=$

25echo -e "

\n">>/tmp/check_table_all.log

26 $-h 127.0.0.1-u$-p$-e "

check table

"$.$2>&1>>/tmp/check_table_all.log

27done

28cd ..

29fi

30fi

31done

32cat /tmp/check_table_all.log | grep

"table is marked as crashed

">/tmp/check_table_repair.log

33 repair_count_all=` awk

'end

' /tmp/check_table_repair.log `

34echo -e "

所有資料庫用有$張表需要修復!"35

more /tmp/check_table_repair.log

36else

37 read -p "

請輸入要檢查的資料庫名稱:

"db_name

38 cd $/$

39for file_list in $(ls *.frm)

40do

41 _file_name=$

42echo -e "

\n">>/tmp/check_$.log

43 $-h 127.0.0.1-u$-p$-e "

check table

"$.$_file_name 2>&1>>/tmp/check_$.log

44done

45cat /tmp/check_$.log | grep

"table is marked as crashed

">/tmp/check_$_repair.log

46 repair_count=`awk

'end

' /tmp/check_$_repair.log`

47echo -e "

$中共有$個表需要修復!\n "48

more /tmp/check_$_repair.log

49fi

來自為知筆記(wiz)

檢查資料庫是否存在某物件(SQLserver)

objectproperty 返回當前資料庫中物件的有關資訊 語法 objectproperty id property 例如 objectproperty object id n authors n istable 1 或select from dbo.sysobjects where objec...

mysql判斷資料庫或表是否存在

1 判斷資料庫存在,則刪除 drop database if exists db name 2 判斷資料表存在,則刪除 drop table if exists table name 注 db name,table name可用 1鍵旁邊那個鍵 號引起來,也可不引起來.1 如果單純顯示是否存在資料庫...

判斷資料庫中表是否存在

sql server if exist select from sysobjects where id object id table1 then drop table1 if exists select top 1 id from tablename1 用 if exists select 1 f...