亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PHP學習mysql課件 高級篇

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

授予用戶特定的權限:
  使用grant語句添加一個可以從本地機連接的MySQL服務器的用戶user1,并且只授予其針對sales數(shù)據(jù)庫中employee表的select和insert權限。
  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;    //可進行查看操作
  mysql> insert into employee …….  //可進行插入操作。

撤銷用戶權限:
語法: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權限:
    mysql> revoke insert on sales.employee from user1@localhost;
    //返回如下信息,表明權限撤銷成功。
    Query OK, 0 row in set affected (0.00 sec)
```````````````````````````````````````````````````````````````````````````````````````````
    權限更改何時生效
當mysqld啟動時,所有的授權表內容被讀進存儲器并且從那點生效。 
用GRANT、REVOKE或SET PASSWORD對授權表施行的修改會立即被服務器注意到。 
如果你手工地修改授權表(使用INSERT、UPDATE等等),你應該執(zhí)行一個FLUSH PRIVILEGES語句或運行mysqladmin flush-privileges告訴服務器再裝載授權表,否則你的改變將不生效,除非你重啟服務器。 

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

    數(shù)據(jù)庫的備份與恢復
1、數(shù)據(jù)庫的備份:
A、用mysqldump備份數(shù)據(jù)庫:
  語法: mysqldump [OPTIONS] database [table]
實例:
  將數(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ù)庫或表的另一種方法是直接拷貝表文件。通常可利用像cp、tar 或cpio 這樣的實用程序來進行。當使用直接拷貝備份( direct-copy backup)方法時,必須確保沒有使用這些表。如果在拷貝一個表的同時服務器正在修改它,則拷貝無效。

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


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

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

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


    導入數(shù)據(jù)
默認情況下,MySQL認為數(shù)據(jù)文件是在服務器上,在LOAD DATA INFILE 語句中指定位置。
如果想要使用客戶機上的數(shù)據(jù),可以在語句中添加LOCAl關鍵字,告訴MySQL在客戶機的文件系統(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;
當然還有IGNORE    REPLACE等關鍵字。

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

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

相關文章

最新評論