以下是一些我接觸過但是不常用的命令,就是說偶爾用的時候總是不太確定用法的命令。
一,用戶相關:
1、創建用戶並授權
GRANT privileges (columns) ON what TO user IDENTIFIED BY "passWord" WITH GRANT OPTION
其他參數不用多介紹,介紹privileges參數:
privileges
授予用戶的權限,下表列出可用於GRANT語句的權限指定符: ALTER 修改表和索引
CREATE 創建數據庫和表
DELETE 刪除表中已有的記錄
DROP 拋棄(刪除)數據庫和表
INDEX 創建或拋棄索引
INSERT 向表中插入新行
REFERENCE 未用
SELECT 檢索表中的記錄
UPDATE 修改現存表記錄
FILE 讀或寫服務器上的文件
PROCESS 查看服務器中執行的線程信息或殺死線程
RELOAD 重載授權表或清空日志、主機緩存或表緩存。
SHUTDOWN 關閉服務器
ALL 所有;ALL PRIVILEGES同義詞
USAGE 特殊的“無權限”權限
舉例:創建一個超級用戶test1
MySQL> grant all privilleges on *.* to test1@localhost identifIEd by '123456' with grant option;
創建一個只能查詢的用戶 test2
MySQL> grant select on *.* to test2@localhost identifIEd by '9876543';
2、撤權並刪除用戶
要取消一個用戶的權限,使用REVOKE語句。REVOKE的語法非常類似於GRANT語句,除了TO用FROM取代並且沒有
INDETIFED BY和WITH GRANT OPTION子句:
REVOKE privileges (columns) ON what FROM user
MySQL>FLUSH PRIVILEGES;
FLUSH語句告訴服務器重載授權表。(當你使用GRANT和REVOKE語句時,表自動重載,而你直接修改授權表時不是。)
二,索引相關
1,添加索引:
1.1,添加普通索引:加索引 (該列的值允許不唯一)
MySQL> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);
例子: MySQL> alter table employee add index emp_name (name);
2.1,添加主key(主key自動為索引,該列值必須唯一)
MySQL> alter table 表名 add primary key (字段名);
例子: MySQL> alter table employee add primary key(id);
3.1,添加unique索引 (該列值唯一)
MySQL> alter table 表名 add unique 索引名 (字段名);
例子: MySQL> alter table employee add unique emp_name2(cardnumber);
2,刪除索引:
MySQL> alter table 表名 drop index 索引名;
例子: MySQL>alter table employee drop index emp_name;
3,查看索引:
MySQL> show index from 表名;
例子: MySQL> show index from employee;
三,列操作相關
1,添加列:
alter table 表名 add column (列名 類型)
alter table 表名 add column 列名 類型 first|after 列名 (指定添加位置)
2,刪除列:
alter table 表名 drop column 列名
3,改變列:
3.1,改變默認值:alter table 表名 alter column 列名 set default literal|drop default
3.2, 改變列定義:alter table 表名 change column 舊列名 新列名 類型 first|after 列名
(指定改變位 置)當舊列和新列類型不一致時,MySQL會自動轉換,具體怎麼轉換可以自己test一下
四,緩存相關:
1,檢查緩存是否開啟:
SHOW VARIABLES LIKE 'have_query_cache';
2,整理緩存(不是移除):
flush query cache
3,移除緩存:
reset query cache
跟緩存相關的還有query_cache_limit, query_cache_size, query_cache_type等參數的設置。