1. 添加用戶(hù) 可以使用CREATE USER語(yǔ)法添加一個(gè)或多個(gè)用戶(hù),并設(shè)置相應(yīng)的密碼。 語(yǔ)法式: CREATE USER user [identified BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']] ... 其中,user的式為: 'user_name'@ 'host name' 說(shuō)明:
1. 添加用戶(hù)
可以使用CREATE USER語(yǔ)法添加一個(gè)或多個(gè)用戶(hù),并設(shè)置相應(yīng)的密碼。 語(yǔ)法格式:
CREATE USER user [identified BY [PASSWORD] 'password']
[, user [IDENTIFIED BY [PASSWORD] 'password']] ...
其中,user的格式為: 'user_name'@ 'host name'
說(shuō)明:
user_name為用戶(hù)名,host_name為主機(jī)名,password為該用戶(hù)的密碼。在大多數(shù)SQL產(chǎn)品中,用戶(hù)名和密碼只由字母和數(shù)字組成。
使用自選的IDENTIFIED BY子句,可以為賬戶(hù)給定一個(gè)密碼。特別是要在純文本中指定密碼,需忽略PASSWORD關(guān)鍵詞。如果不想以明文發(fā)送密碼,而且知道PASSWORD()函數(shù)返回給密碼的混編值,則可以指定該混編值,但要加關(guān)鍵字PASSWORD。
CREATE USER用于創(chuàng)建新的MySQL賬戶(hù)。CREATE USER會(huì)在系統(tǒng)本身的mysql數(shù)據(jù)庫(kù)的user表中添加一個(gè)新記錄。要使用CREATE USER,必須擁有mysql數(shù)據(jù)庫(kù)的全局CREATE USER權(quán)限或INSERT權(quán)限。如果賬戶(hù)已經(jīng)存在,則出現(xiàn)錯(cuò)誤。
例: 添加兩個(gè)新的用戶(hù),king的密碼為queen,palo的密碼為530415。
CREATE USER
'king'@'localhost'IDENTIFIED BY 'queen',
'palo'@'localhost'IDENTIFIED BY '530415';
說(shuō)明:
在用戶(hù)名的后面聲明了關(guān)鍵字localhost。這個(gè)關(guān)鍵字指定了用戶(hù)創(chuàng)建的使用MySQL的連接所來(lái)自的主機(jī)。如果一個(gè)用戶(hù)名和主機(jī)名中包含特殊符號(hào)如“_”,或通配符如“%”,則需要用單引號(hào)將其括起。“%”表示一組主機(jī),所有人都可以訪(fǎng)問(wèn)。
如果兩個(gè)用戶(hù)具有相同的用戶(hù)名但主機(jī)不同,MySQL將其視為不同的用戶(hù),允許為這兩個(gè)用戶(hù)分配不同的權(quán)限集合。
如果沒(méi)有輸入密碼,那么MySQL允許相關(guān)的用戶(hù)不使用密碼登錄。但是從安全的角度并不推薦這種做法。
剛剛創(chuàng)建的用戶(hù)還沒(méi)有很多權(quán)限。它們可以登錄到MySQL,但是它們不能使用USE語(yǔ)句來(lái)讓用戶(hù)已經(jīng)創(chuàng)建的任何數(shù)據(jù)庫(kù)成為當(dāng)前數(shù)據(jù)庫(kù),因此,它們無(wú)法訪(fǎng)問(wèn)那些數(shù)據(jù)庫(kù)的表,只允許進(jìn)行不需要權(quán)限的操作,例如,用一條SHOW語(yǔ)句查詢(xún)所有存儲(chǔ)引擎和字符集的列表。
2. 刪除用戶(hù)
語(yǔ)法格式:DROP USER user [, user_name] ...
DROP USER語(yǔ)句用于刪除一個(gè)或多個(gè)MySQL賬戶(hù),并取消其權(quán)限。要使用DROPUSER,必須擁有mysql數(shù)據(jù)庫(kù)的全局CREATE USER權(quán)限或DELETE權(quán)限。
例: 刪除用戶(hù)TOM :DROP USER TOM@localhost;
如果刪除的用戶(hù)已經(jīng)創(chuàng)建了表、索引或其他的數(shù)據(jù)庫(kù)對(duì)象,它們將繼續(xù)保留,因?yàn)镸ySQL并沒(méi)有記錄是誰(shuí)創(chuàng)建了這些對(duì)象。
3. 修改用戶(hù)
可以使用rename USER語(yǔ)句來(lái)修改一個(gè)已經(jīng)存在的SQL用戶(hù)的名字。 語(yǔ)法格式:RENAME USER old_user TO new_user,
[, old_user TO new_user] ...
說(shuō)明:
old_user為已經(jīng)存在的SQL用戶(hù)。new_user為新的SQL用戶(hù)。
RENAME USER語(yǔ)句用于對(duì)原有MySQL賬戶(hù)進(jìn)行重命名。要使用RENAME USER,必須擁有全局CREATE USER權(quán)限或mysql數(shù)據(jù)庫(kù)UPDATE權(quán)限。如果舊賬戶(hù)不存在或者新賬戶(hù)已存在,則會(huì)出現(xiàn)錯(cuò)誤。
例: 將用戶(hù)king1和king2的名字分別修改為ken1和ken2。
RENAME USER
'king1'@'localhost' TO' ken1'@'localhost',
'king2'@'localhost' TO' ken2'@'localhost';
4. 修改密碼
要修改某個(gè)用戶(hù)的登錄密碼,可以使用SET PASSWORD語(yǔ)句。
語(yǔ)法格式:SET PASSWORD [FOR user]= PASSWORD('newpassword')
說(shuō)明:
如果不加FOR user,表示修改當(dāng)前用戶(hù)的密碼。加了FORuser則是修改當(dāng)前主機(jī)上的特定用戶(hù)的密碼,user為用戶(hù)名。user的值必須以'user_name'@'host_name'的格式給定。
例: 將用戶(hù)king的密碼修改為queen1。
SET PASSWORD FOR 'king'@'localhost' =PASSWORD('queen1');
5. 授予權(quán)限
新的SQL用戶(hù)不允許訪(fǎng)問(wèn)屬于其他SQL用戶(hù)的表,也不能立即創(chuàng)建自己的表,它必須被授權(quán)。可以授予的權(quán)限有以下幾組。
(1)列權(quán)限:和表中的一個(gè)具體列相關(guān)。例如,使用UPDATE語(yǔ)句更新表XS學(xué)號(hào)列的值的權(quán)限。
(2)表權(quán)限:和一個(gè)具體表中的所有數(shù)據(jù)相關(guān)。例如,使用SELECT語(yǔ)句查詢(xún)表XS的所有數(shù)據(jù)的權(quán)限。
(3)數(shù)據(jù)庫(kù)權(quán)限:和一個(gè)具體的數(shù)據(jù)庫(kù)中的所有表相關(guān)。例如,在已有的XSCJ數(shù)據(jù)庫(kù)中創(chuàng)建新表的權(quán)限。
(4)用戶(hù)權(quán)限:和MySQL所有的數(shù)據(jù)庫(kù)相關(guān)。例如,刪除已有的數(shù)據(jù)庫(kù)或者創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)的權(quán)限。
給某用戶(hù)授予權(quán)限可以使用grant語(yǔ)句。使用showgrants語(yǔ)句可以查看當(dāng)前賬戶(hù)擁有什么權(quán)限。
GRANT語(yǔ)法格式: GRANT priv_type [(column_list)] [, priv_type[(column_list)]] ...
ON [object_type] {表名 | * | *.* | 庫(kù)名.*}
TO user [IDENTIFIED BY [PASSWORD]'password']
[, user [IDENTIFIED BY [PASSWORD] 'password']] ...
[WITH with_option [with_option] ...]
其中,object_type:
TABLE
| FUNCTION
| PROCEDURE
with_option :
GRANT OPTION
| MAX_QUERIES_PER_HOUR count
| MAX_UPDATES_PER_HOUR count
| MAX_CONNECTIONS_PER_HOUR count
| MAX_USER_CONNECTIONS count
說(shuō)明:priv_type為權(quán)限的名稱(chēng),如SELECT、UPDATE等,給不同的對(duì)象授予權(quán)限priv_type的值也不相同。TO子句用來(lái)設(shè)定用戶(hù)的密碼。ON關(guān)鍵字后面給出的是要授予權(quán)限的數(shù)據(jù)庫(kù)或表名,下面將一一介紹。
(1)授予表權(quán)限和列權(quán)限
授予表權(quán)限時(shí),priv_type可以是以下值:
● SELECT:給予用戶(hù)使用SELECT語(yǔ)句訪(fǎng)問(wèn)特定的表的權(quán)力。用戶(hù)也可以在一個(gè)視圖公式中包含表。然而,用戶(hù)必須對(duì)視圖公式中指定的每個(gè)表(或視圖)都有SELECT權(quán)限。
● INSERT:給予用戶(hù)使用INSERT語(yǔ)句向一個(gè)特定表中添加行權(quán)力.
● DELETE:給予用戶(hù)使用DELETE語(yǔ)句向一個(gè)特定表中刪除行權(quán)力。
● UPDATE:給予用戶(hù)使用UPDATE語(yǔ)句修改特定表中值的權(quán)力。
● REFERENCES:給予用戶(hù)創(chuàng)建一個(gè)外鍵來(lái)參照特定的表的權(quán)力。
● CREATE:給予用戶(hù)使用特定的名字創(chuàng)建一個(gè)表的權(quán)力。
● ALTER:給予用戶(hù)使用ALTERTABLE語(yǔ)句修改表的權(quán)力。
● INDEX:給予用戶(hù)在表上定義索引的權(quán)力。
● DROP:給予用戶(hù)刪除表的權(quán)力。
● ALL或ALL PRIVILEGES:表示所有權(quán)限名。
在授予表權(quán)限時(shí),ON關(guān)鍵字后面跟tb1_name,tb1_name為表名或視圖名。
例: 授予用戶(hù)king在XS表上的SELECT權(quán)限。
USE XSCJ;
GRANT SELECT ON XS TOking@use_name;
說(shuō)明:
若在TO子句中給存在的用戶(hù)指定密碼,則新密碼將原密碼覆蓋。如果權(quán)限授予了一個(gè)不存在的用戶(hù),MySQL會(huì)自動(dòng)執(zhí)行一條CREATE USER語(yǔ)句來(lái)創(chuàng)建這個(gè)用戶(hù),但必須為該用戶(hù)指定密碼。
例:用戶(hù)liu和zhang不存在,授予它們?cè)赬S表上的SELECT和UPDATE權(quán)限。
GRANT SELECT,UPDATE ON XS
TO liu@localhost IDENTIFIED BY 'LPWD',
zhang@localhostIDENTIFIED BY 'ZPWD';
對(duì)于列權(quán)限,priv_type的值只能取SELECT、INSERT和UPDATE。權(quán)限的后面需要加上列名column_list。
例: 授予king在XS表上的學(xué)號(hào)列和姓名列的UPDATE權(quán)限。
GRANT UPDATE(姓名, 學(xué)號(hào)) ON XS TO king@localhost;
(2)授予數(shù)據(jù)庫(kù)權(quán)限
表權(quán)限適用于一個(gè)特定的表。MySQL還支持針對(duì)整個(gè)數(shù)據(jù)庫(kù)的權(quán)限。例如,在一個(gè)特定的數(shù)據(jù)庫(kù)中創(chuàng)建表和視圖的權(quán)限。
授予數(shù)據(jù)庫(kù)權(quán)限時(shí),priv_type可以是以下值:
● SELECT:給予用戶(hù)使用SELECT語(yǔ)句訪(fǎng)問(wèn)特定數(shù)據(jù)庫(kù)中所有表和視圖的權(quán)力。
● INSERT:給予用戶(hù)使用INSERT語(yǔ)句向特定數(shù)據(jù)庫(kù)中所有表添加行的權(quán)力。
● DELETE:給予用戶(hù)使用DELETE語(yǔ)句刪除特定數(shù)據(jù)庫(kù)中所有表的行的權(quán)力。
● UPDATE:給予用戶(hù)使用UPDATE語(yǔ)句更新特定數(shù)據(jù)庫(kù)中所有表的值的權(quán)力。
● REFERENCES:給予用戶(hù)創(chuàng)建指向特定的數(shù)據(jù)庫(kù)中的表外鍵的權(quán)力。
● CREATE:給予用戶(hù)使用CREATETABLE語(yǔ)句在特定數(shù)據(jù)庫(kù)中創(chuàng)建新表的權(quán)力。
● ALTER:給予用戶(hù)使用ALTERTABLE語(yǔ)句修改特定數(shù)據(jù)庫(kù)中所有表的權(quán)力。
● INDEX:給予用戶(hù)在特定數(shù)據(jù)庫(kù)中的所有表上定義和刪除索引的權(quán)力。
● DROP:給予用戶(hù)刪除特定數(shù)據(jù)庫(kù)中所有表和視圖的權(quán)力。
● CREATE TEMPORARY TABLES:給予用戶(hù)在特定數(shù)據(jù)庫(kù)中創(chuàng)建臨時(shí)表的權(quán)力。
● CREATE VIEW:給予用戶(hù)在特定數(shù)據(jù)庫(kù)中創(chuàng)建新的視圖的權(quán)力。
● SHOW VIEW:給予用戶(hù)查看特定數(shù)據(jù)庫(kù)中已有視圖的視圖定義的權(quán)力。
● CREATE ROUTINE:給予用戶(hù)為特定的數(shù)據(jù)庫(kù)創(chuàng)建存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)等權(quán)力。
● ALTER ROUTINE:給予用戶(hù)更新和刪除數(shù)據(jù)庫(kù)中已有的存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)等權(quán)力。
● EXECUTE ROUTINE:給予用戶(hù)調(diào)用特定數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的權(quán)力。
● LOCK TABLES:給予用戶(hù)鎖定特定數(shù)據(jù)庫(kù)的已有表的權(quán)力。
● ALL或ALL PRIVILEGES:表示以上所有權(quán)限名。
在GRANT語(yǔ)法格式中,授予數(shù)據(jù)庫(kù)權(quán)限時(shí)ON關(guān)鍵字后面跟“*”和“db_name.*”。“*”表示當(dāng)前數(shù)據(jù)庫(kù)中的所有表;“db_name.*”表示某個(gè)數(shù)據(jù)庫(kù)中的所有表;*.*表示所有庫(kù)下所有表。
例: 授予king在XSCJ數(shù)據(jù)庫(kù)中的所有表的SELECT權(quán)限。
GRANT SELECT ON XSCJ.* TO king@localhost;
說(shuō)明:這個(gè)權(quán)限適用于所有已有的表,以及此后添加到XSCJ數(shù)據(jù)庫(kù)中的任何表。
例: 授予king在XSCJ數(shù)據(jù)庫(kù)中所有的數(shù)據(jù)庫(kù)權(quán)限。
USE XSCJ;
GRANT ALL ON * TO king@localhost;
和表權(quán)限類(lèi)似,授予一個(gè)數(shù)據(jù)庫(kù)權(quán)限也不意味著擁有另一個(gè)權(quán)限。如果用戶(hù)被授予可以創(chuàng)建新表和視圖,但是還不能訪(fǎng)問(wèn)它們。要訪(fǎng)問(wèn)它們,它還需要單獨(dú)被授予SELECT權(quán)限或更多權(quán)限。
(3)授予用戶(hù)權(quán)限
最有效率的權(quán)限就是用戶(hù)權(quán)限,對(duì)于需要授予數(shù)據(jù)庫(kù)權(quán)限的所有語(yǔ)句,也可以定義在用戶(hù)權(quán)限上。例如,在用戶(hù)級(jí)別上授予某人CREATE權(quán)限,這個(gè)用戶(hù)可以創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù),也可以在所有的數(shù)據(jù)庫(kù)(而不是特定的數(shù)據(jù)庫(kù))中創(chuàng)建新表。
MySQL授予用戶(hù)權(quán)限時(shí)priv_type還可以是以下值。
● CREATE USER:給予用戶(hù)創(chuàng)建和刪除新用戶(hù)的權(quán)力。
● SHOW DATABASES:給予用戶(hù)使用SHOW DATABASES語(yǔ)句查看所有已有的數(shù)據(jù)庫(kù)的定義的權(quán)利。
在GRANT語(yǔ)法格式中,授予用戶(hù)權(quán)限時(shí)ON子句中使用“*.*”,表示所有數(shù)據(jù)庫(kù)的所有表。
例: 授予Peter對(duì)所有數(shù)據(jù)庫(kù)中的所有表的CREATE、ALTERT和DROP權(quán)限。
GRANT CREATE ,ALTER,DROP
ON *.* TO Peter@localhost IDENTIFIED BY 'ppwd';
例: 授予Peter創(chuàng)建新用戶(hù)的權(quán)力。
GRANT CREATE USER
ON *.* TO Peter@localhost;
6. 權(quán)限的轉(zhuǎn)移和限制
GRANT語(yǔ)句的最后可以使用WITH子句。如果指定為WITH GRANT OPTION,則表示TO子句中指定的所有用戶(hù)都有把自己所擁有的權(quán)限授予其他用戶(hù)的權(quán)利,而不管其他用戶(hù)是否擁有該權(quán)限。
例: 授予David在XS表上的SELECT權(quán)限,并允許其將該權(quán)限授予其他用戶(hù)。
GRANT SELECT ON XSCJ.XS
TO David@localhost IDENTIFIED BY '123456'
WITH GRANT OPTION;
可以把這個(gè)權(quán)限傳遞給其他用戶(hù),這里假設(shè)用戶(hù)Jim已經(jīng)創(chuàng)建:
GRANT SELECT ON XSCJ.XS TO Jim@localhost;
說(shuō)明:使用了WITH GRANT OPTION子句后,如果David在該表上還擁有其他權(quán)限,他可以將其他權(quán)限也授予Jim而不僅限于SELECT。
WITH子句也可以對(duì)一個(gè)用戶(hù)授予使用限制,其中,MAX_queries_PER_HOURcount表示每小時(shí)可以查詢(xún)數(shù)據(jù)庫(kù)的次數(shù);MAX_connections_PER_HOURcount表示每小時(shí)可以連接數(shù)據(jù)庫(kù)的次數(shù);MAX_UPDATES_PER_HOURcount表示每小時(shí)可以修改數(shù)據(jù)庫(kù)的次數(shù)。count表示同時(shí)連接MySQL的最大用戶(hù)數(shù)。count是一個(gè)數(shù)值,對(duì)于前三個(gè)指定,count如果為0則表示不起限制作用。
例: 授予Jim每小時(shí)只能處理一條SELECT語(yǔ)句的權(quán)限。
GRANT SELECT ON XS TO Jim@localhost
WITH MAX_QUERIES_PER_HOUR1;
7. 收回權(quán)限
要從一個(gè)用戶(hù)回收權(quán)限,但不從USER表中刪除該用戶(hù),可以使用REVOKE語(yǔ)句,這條語(yǔ)句和GRANT語(yǔ)句格式相似,但具有相反的效果。要使用REVOKE,用戶(hù)必須擁有mysql數(shù)據(jù)庫(kù)的全局CREATE USER權(quán)限或UPDATE權(quán)限。
語(yǔ)法格式: REVOKE priv_type[(column_list)] [, priv_type [(column_list)]] ...
ON {表名 | * |*.* | 庫(kù)名.*}
FROM user [, user] ...
或者:
REVOKE ALL privileges, GRANT OPTION FROM user [, user] ...
說(shuō)明:第一種格式用來(lái)回收某些特定的權(quán)限,第二種格式回收所有該用戶(hù)的權(quán)限。
例: 回收用戶(hù)David在XS表上的SELECT權(quán)限。
REVOKE SELECT ON XS FROM David@localhost;
由于David用戶(hù)對(duì)XS表的SELECT權(quán)限被回收了,那么包括直接或間接地依賴(lài)于它的所有權(quán)限也回收了,在這個(gè)例子中,Jim也失去了對(duì)XS表的SELECT權(quán)限。但以上語(yǔ)句執(zhí)行之后WITH GRANT OPTION還保留,當(dāng)再次授予David對(duì)于同一個(gè)表的表權(quán)限時(shí),它會(huì)立刻把這個(gè)權(quán)限傳遞給Jim。
以下非重點(diǎn),屬于了解內(nèi)容:(表維護(hù)語(yǔ)句)
1.a(chǎn)nalyze table語(yǔ)句
在一個(gè)定義了索引的列上,該列上不同值的數(shù)目被稱(chēng)為該索引列的可壓縮性,可以使用SHOWINDEX FROM tb_name語(yǔ)句來(lái)顯示它。
一個(gè)索引列的可壓縮性不是自動(dòng)更新的。就是說(shuō),用戶(hù)在某列創(chuàng)建了一個(gè)索引,而該列的可壓縮性是不會(huì)立即計(jì)算出來(lái)的。這時(shí)需要使用ANALYZE TABLE語(yǔ)句來(lái)更新它。
語(yǔ)法格式:ANALYZE [LOCAL |NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
在MySQL上執(zhí)行的所有更新都將寫(xiě)入到一個(gè)二進(jìn)制日志文件中。這里如果直接使用ANALYZE TABLE語(yǔ)句,結(jié)果數(shù)據(jù)也會(huì)寫(xiě)入日志文件中。如果指定了NO_eriteTO_binlog選項(xiàng),則關(guān)閉這個(gè)功能(LOCAL是NO_ERITE_TO_BINLOG的同義詞),這樣ANALYZETABLE語(yǔ)句也將會(huì)更快完成。
例: 更新表XS的索引的可壓縮性,并隨后顯示。
ANALYZE TABLE XS;
SHOW INDEX FROM XS;
2. check table 語(yǔ)句
這條語(yǔ)句用來(lái)檢查一個(gè)或多個(gè)表是否有錯(cuò)誤,只對(duì)MyISAM和InnoDB表起作用。 語(yǔ)法格式:
CHECK TABLE tbl_name [, tbl_name] ...[option] ...
其中,option為:
QUICK | FAST | MEDIUM | EXTENDED |CHANGED
說(shuō)明:
使用該語(yǔ)句有多個(gè)選項(xiàng)。
● quick:不掃描行,不檢查錯(cuò)誤的鏈接,這是最快的方法。
● fast:檢查表是否已經(jīng)正確關(guān)閉。
● changed:檢查上次檢查后被更改的表,以及沒(méi)有被正確關(guān)閉的表。
● medium:掃描行,以驗(yàn)證被刪除的鏈接是有效的。也可以計(jì)算各行的關(guān)鍵字校驗(yàn)和,并使用計(jì)算出的校驗(yàn)和驗(yàn)證這一點(diǎn)。
● extended:對(duì)每行的所有關(guān)鍵字進(jìn)行全面的關(guān)鍵字查找。這可以確保表是100%一致的,但是花的時(shí)間較長(zhǎng)。
例: 檢查XS表是否正確。
CHECK TABLE XS;
3. checksum table 語(yǔ)句
對(duì)于數(shù)據(jù)庫(kù)中的每一個(gè)表,都可以使用CHECKSUM TABLE語(yǔ)句獲得一個(gè)校驗(yàn)和。 語(yǔ)法格式:
CHECKSUM TABLE tbl_name [, tbl_name]... [ QUICK | EXTENDED ]
說(shuō)明:如果表是MyISAM表,如果指定了QUICK,則報(bào)告表校驗(yàn)和,否則報(bào)告NULL。指定EXTENDED則表示無(wú)論表是否是MyISAM表,都只計(jì)算檢驗(yàn)和。
4. optimize table 語(yǔ)句
如果用戶(hù)不斷地使用DELETE、INSERT和UPDATE語(yǔ)句更新一個(gè)表,那么表的內(nèi)部結(jié)構(gòu)就會(huì)出現(xiàn)很多碎片和未利用的空間。這時(shí)可以使用OPTIMIZE TABLE語(yǔ)句來(lái)重新利用未使用的空間,并整理數(shù)據(jù)文件的碎片。OPTIMIZE TABLE語(yǔ)句只對(duì)MyISAM、BDB和InnoDB表起作用。
語(yǔ)法格式: OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name[, tbl_name] ...
例: 優(yōu)化XS表。
5. repair table 語(yǔ)句
如果一個(gè)表或索引已經(jīng)損壞,可以使用REPAIR TABLE語(yǔ)句嘗試修復(fù)它。REPAIR TABLE只對(duì)MyISAM和ARCHIVE表起作用。
REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE
tbl_name [, tbl_name]... [QUICK] [EXTENDED] [USE_FRM]
說(shuō)明:
REPAIR TABLE語(yǔ)句支持以下選項(xiàng):
● QUICK:如果指定了該選項(xiàng),則REPAIR TABLE會(huì)嘗試只修復(fù)索引樹(shù)。
● EXTENDED:使用該選項(xiàng),則MySQL會(huì)一行一行地創(chuàng)建索引行,代替使用分類(lèi)一次創(chuàng)建一個(gè)索引。
● USE_FRM:如果MYI索引文件缺失或標(biāo)題被破壞,則必須使用此選項(xiàng)。
另外,還有兩個(gè)表維護(hù)語(yǔ)句:backup TABLE和restore TABLE語(yǔ)句。
使用BACKUP TABLE語(yǔ)句可以對(duì)一個(gè)或多個(gè)MyISAM表備份。
語(yǔ)法格式為:
BACKUP TABLE tbl_name [, tbl_name] ... TO'/path/to/backup/directory'
使用RESTORE TABLE語(yǔ)句可以獲取BACKUPTABLE創(chuàng)建的一個(gè)或多個(gè)表的備份,將數(shù)據(jù)讀取到數(shù)據(jù)庫(kù)中。
語(yǔ)法格式為:
RESTORE TABLE tbl_name [, tbl_name] ... FROM'/path/to/backup/directory'
但是這兩條語(yǔ)句不是很理想,已經(jīng)不推薦使用了,這里只是大概了解一下。OPTIMIZE TABLEKC;
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com