欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP學(xué)習(xí)mysql課件 高級篇第2/2頁

 更新時(shí)間:2008年06月15日 13:09:25   作者:  
MySQL數(shù)據(jù)庫管理 數(shù)據(jù)庫的啟動與關(guān)閉,安全、訪問控制和權(quán)限,數(shù)據(jù)庫的備份與恢復(fù),導(dǎo)入和導(dǎo)出記錄

授予用戶特定的權(quán)限:
  使用grant語句添加一個(gè)可以從本地機(jī)連接的MySQL服務(wù)器的用戶user1,并且只授予其針對sales數(shù)據(jù)庫中employee表的select和insert權(quán)限。
  mysql> grant select,insert on sales.employee to user1@localhost identified by ‘user1pass';
  說明:使用:# mysql –u user1 –puser1pass 登錄數(shù)據(jù)庫以后可以做如下操作:
  mysql> use sales;    //打開sales數(shù)據(jù)庫
  mysql> show tables;    //只能看到employee表
  mysql> select * from employee;    //可進(jìn)行查看操作
  mysql> insert into employee …….  //可進(jìn)行插入操作。

撤銷用戶權(quán)限:
語法:REVOKE priv_type[(column_list)][,priv_type[(column_list)]…]
    ON {*.* | * | db_name.* | db_name.tbl_name | db_name}
    FROM user_name [,user_name…]
  例如:撤消用戶user1針對sales數(shù)據(jù)庫中employee表的insert權(quán)限:
    mysql> revoke insert on sales.employee from user1@localhost;
    //返回如下信息,表明權(quán)限撤銷成功。
    Query OK, 0 row in set affected (0.00 sec)
```````````````````````````````````````````````````````````````````````````````````````````
    權(quán)限更改何時(shí)生效
當(dāng)mysqld啟動時(shí),所有的授權(quán)表內(nèi)容被讀進(jìn)存儲器并且從那點(diǎn)生效。 
用GRANT、REVOKE或SET PASSWORD對授權(quán)表施行的修改會立即被服務(wù)器注意到。 
如果你手工地修改授權(quán)表(使用INSERT、UPDATE等等),你應(yīng)該執(zhí)行一個(gè)FLUSH PRIVILEGES語句或運(yùn)行mysqladmin flush-privileges告訴服務(wù)器再裝載授權(quán)表,否則你的改變將不生效,除非你重啟服務(wù)器。 

    權(quán)限更改的影響
當(dāng)服務(wù)器注意到授權(quán)表被改變了時(shí),現(xiàn)存的客戶連接有如下影響: 
表和列權(quán)限在客戶的下一次請求時(shí)生效。 
數(shù)據(jù)庫權(quán)限改變在下一個(gè)USE db_name命令生效。 
全局權(quán)限的改變和口令改變在下一次客戶連接時(shí)生效。 

    數(shù)據(jù)庫的備份與恢復(fù)
1、數(shù)據(jù)庫的備份:
A、用mysqldump備份數(shù)據(jù)庫:
  語法: mysqldump [OPTIONS] database [table]
實(shí)例:
  將數(shù)據(jù)庫sales備份成sales_bak030630.sql文件。
  # mysqldump –u root –p  --opt sales > sales_bak030630.sql
  //返回如下信息,表明備份成功
  -rw-r--r-- 1 root root  2296 Jun 29 23:30 sales_bak030630.sql

B、用直接拷貝的方法備份數(shù)據(jù)庫:
不用mysqldump 來備份數(shù)據(jù)庫或表的另一種方法是直接拷貝表文件。通??衫孟馽p、tar 或cpio 這樣的實(shí)用程序來進(jìn)行。當(dāng)使用直接拷貝備份( direct-copy backup)方法時(shí),必須確保沒有使用這些表。如果在拷貝一個(gè)表的同時(shí)服務(wù)器正在修改它,則拷貝無效。

    確??截愅暾缘淖詈梅椒ㄊ顷P(guān)閉服務(wù)器,拷貝文件,然后重新啟動服務(wù)器。


2、數(shù)據(jù)庫的恢復(fù):
數(shù)據(jù)庫系統(tǒng)出現(xiàn)崩潰時(shí),應(yīng)該使用最近的一次備份對數(shù)據(jù)庫進(jìn)行恢復(fù),如果啟用了更新日志,還需要重新執(zhí)行更新日志中最近一次備份之后對數(shù)據(jù)庫進(jìn)行修改的任何查詢,以盡可能將數(shù)據(jù)恢復(fù)到崩潰時(shí)刻所處的狀態(tài)。
    # mysql –u root –p sales < sales_bak030630.sql

    優(yōu)化表
在大多數(shù)情況下,優(yōu)化表的做法很值得。當(dāng)一個(gè)表被多次修改,那它的結(jié)構(gòu)將很快變得支離破碎,其結(jié)果是導(dǎo)致性能的下降。這個(gè)時(shí)候可以使用OPTIMIZE   TABLE 命令來刷新,清理出空間。
mysql>OPTIMIZE  TABLE   tablename;

    導(dǎo)入和導(dǎo)出記錄
INSERT語句不是向表中插入記錄的唯一方法,MySQL還允許使用LOAD  DATA  INFILE  命令一次性插入多條記錄。這個(gè)命令可以從文本文件讀出原始數(shù)據(jù)(該文件可以放置在連接服務(wù)器上或者客戶端),在列和行界定符號的基礎(chǔ)上進(jìn)行分析,然后自動產(chǎn)生INSERT 語句來向一個(gè)表寫數(shù)據(jù)。


    導(dǎo)入數(shù)據(jù)
默認(rèn)情況下,MySQL認(rèn)為數(shù)據(jù)文件是在服務(wù)器上,在LOAD DATA INFILE 語句中指定位置。
如果想要使用客戶機(jī)上的數(shù)據(jù),可以在語句中添加LOCAl關(guān)鍵字,告訴MySQL在客戶機(jī)的文件系統(tǒng)上查找文件。
mysql>LOAD  DATA  LOCAL  INFILE  ‘c:\\data.txt' 
  INTO  TABLE user  
  FIELDS TERMINATED  BY  ‘,'  LINES  TERMINATED  BY  ‘\n';

最好在此之前加上如下命令
mysql>LOAD  DATA  LOW_PRIORITY  INFILE  ‘data.txt'  INTO  TABLE  user;
當(dāng)然還有IGNORE    REPLACE等關(guān)鍵字。

    導(dǎo)出數(shù)據(jù)
如果不指定一個(gè)FIELDS子句,缺省值與這樣寫的相同: 
  FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' 
如果不指定一個(gè)LINES子句,缺省值與這樣寫的相同: 
  LINES TERMINATED BY '\n' 
  換句話說,缺省值導(dǎo)致讀取輸入時(shí),LOAD DATA INFILE表現(xiàn)如下: 
在換行符處尋找行邊界 
在定位符處將行分成字段 
不要期望字段由任何引號字符封裝 
將由“\”開頭的定位符、換行符或“\”解釋成字段值的部分字面字符 

    導(dǎo)出數(shù)據(jù)
相反,缺省值導(dǎo)致在寫入輸出時(shí),SELECT ... INTO OUTFILE表現(xiàn)如下: 
在字段之間寫定位符 
不用任何引號字符封裝字段 
使用“\”轉(zhuǎn)義出現(xiàn)在字段中的定位符、換行符或“\”字符 
在行尾處寫換行符 
注意,為了寫入FIELDS ESCAPED BY '\\',對作為一條單個(gè)的反斜線被讀取的值,你必須指定2條反斜線值。
php_mysql_高級.rar

相關(guān)文章

最新評論