mysql常用命令使用手冊
先說一點總結的話。
mysql server所有的使用者都儲存在mysql.user表中(dabase=mysql,table=user),user表就是一個使用者的記錄,就像linux把所有的使用者都放在/etc/passwd一樣。我們可以使用以下命令查詢所有的使用者:select host,user from mysql.user;
也可以更新欄位update mysq.user set host = 'localhost' where user = 'cc';
請不要在mysql.sql中執行insert
命令,如果需要插入一條資料,可以使用create user
命令。
但是這個表(mysql.user
)並不能顯式的查詢到每個使用者的許可權。這就是為什麼新建一個使用者(create user
)的時候,雖然指定了host
為%
,但還是不能遠端連線。
要想查詢指定使用者的許可權,需要使用show grants
命令,
show grants for cc, 有多個使用者都叫cc時,要指定host, show grants for 'cc'@'localhost'
在mysql.user中,使用者名稱是可以重複的,只要host
不同就可以,也就是說,mysql server把使用者名稱相同但host不同的使用者看作是不同的使用者。
在mysql server的命令中,經常用到幾個介詞 on,to,for,from
,為了方便記憶,提示下,通常情況下,on
後面跟資料庫和表的名稱(當然,也可能是用萬用字元表示的庫和表),to
後面跟使用者(使用者通常指定了host),for
後面也是跟使用者,這樣說來,to
和for
的用法很相似,如何區分呢,答案是on
和to
通常會成對出現,不出現on
但是要指定使用者時,就用for
。from
在僅在執行revoke
操作時才會用到,是to
的相反操作。分析語法好像很複雜哈,建議還是敲幾遍命令,這樣你自己都會總結出規律了。
總結完畢了,總結是為了歸納和方便記憶,下面是詳細的命令。
登入:mysql -u root -p
檢視所有的database
:show databases;
檢視所有的table:show tables;
使用一個叫animal
的資料庫:use animal
檢視當前登入使用者(開了好了幾個視窗操作mysql時很有用):select user();
檢視自己選擇了哪個database:select database();
檢視mysql的版本:select version();
後三個命令的執行結果:
mysql> select version(); +-----------------------+| version() |+-----------------------+| 5.7.22-0ubuntu18.04.1 |+-----------------------+1 row in set (0.00 sec) mysql> select user(); +--------------+| user() |+--------------+| cc@localhost |+--------------+1 row in set (0.00 sec) mysql> select database(); +------------+| database() |+------------+| catalog |+------------+1 row in set (0.00 sec)
以上幾個命令是比較基本的,不涉及到具體操作,但是需要的時候幾乎都會去baidu(google)的東西。
建立一個新使用者:create user 'cc'@'%' identified by '123456';
如果我們不想設定密碼:create user 'cc'@'%'
修改密碼:set password for 'c'@'%' = password('123456');
授權使用者對所有表的select
許可權:grant select on *.* to 'c'@'%';
授權使用者對庫animal所有表的select
許可權:grant select on animal.* to 'c'@'%';
授權使用者對庫animal中cat表的select
許可權:grant select on animal.cat to 'c'@'%';
授權使用者對所有表的update
許可權:grant update on *.* to 'c'@'%';
授權使用者對所有表的delete
許可權:grant delete on *.* to 'c'@'%';
當然也可以這樣:grant select,update,delete on *.* to 'c'@'%';
授予所有許可權:grant all privileges on *.* to 'c'@'%';
如果你不想寫privileges
也是可以的:
授權使用者對所有表的update
許可權:grant all on *.* to 'c'@'%';
修改了許可權之後,一定不要忘記:flush privileges;
是授權即時生效。
如果cc
使用者已經連線mysql server,還需要重新連線下才能生效。
現在檢視下cc
使用者的所有許可權吧:show grants for 'cc'@'%';
mysql> show grants for cc; //我確定自己只有一個cc使用者,所以就不寫成'cc'@'%'了 +-------------------------------------------------+ | Grants for cc@% | +-------------------------------------------------+ | GRANT SELECT, UPDATE, DELETE ON *.* TO 'cc'@'%' | | GRANT ALL PRIVILEGES ON `haha`.* TO 'cc'@'%' | +-------------------------------------------------+
好像一切都很完美,突然想起來,怎麼能讓使用者有delete
許可權呢,太危險了,要撤銷一下:revoke delete on *.* from 'cc'@'%';
刪除剛才建立的使用者:drop user 'cc'@'%';
mysql的命令在修改和撤銷的時候,幾乎需要把授權的命令完整的敲一遍,只是關鍵字不同。非常希望mysql的許可權可以有索引,按照id撤銷就好了(只是一個希望,這句話請讀者略過)。
還有一些高階功能,作為附錄:
grant create on 建立 grant alter on 修改表 grant drop on 刪除表 grant references on 操作外來鍵 grant create temporary tables on 臨時表許可權 grant index on 建立索引 grant create view on 建立檢視 grant show view on 檢視檢視 grant create routine on 建立儲存過程 grant alter routine on 修改儲存過程 grant execute on 函式
作者:EdisonChia
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3137/viewspace-2821071/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL DBA 常用手冊小結MySql
- TcpDump使用手冊TCP
- MyBatis 使用手冊MyBatis
- Zabbix 使用手冊
- Anaconda使用手冊
- Mybatis應用手冊MyBatis
- sqlmap使用手冊SQL
- 儀器使用手冊
- git 基本使用手冊Git
- Cobra框架使用手冊框架
- Room Database完全使用手冊OOMDatabase
- MongoDB和pymongo自用手冊MongoDB
- 【C#】CsvHelper 使用手冊C#
- PerfDog WEB端使用手冊Web
- vim-plug使用手冊
- 【C#】AutoMapper 使用手冊C#APP
- Gerrit和Jenkins使用手冊Jenkins
- Carbon中文使用手冊(下)
- Linux parallel 命令使用手冊LinuxParallel
- ThreadLocal 使用手冊 | 按需收藏thread
- Git 快速使用手冊(二)Git
- MySQL 常用命令手冊 增刪改查大法MySql
- Cobalt strike3.0使用手冊
- 《Redis 使用手冊》- 字串(PHP 版本)Redis字串PHP
- BeautifulSoup使用手冊(查詢篇)
- ES6 完全使用手冊
- Rational ClearQuest 安裝、配置、使用手冊
- 報警系統QuickAlarm使用手冊UI
- Canvas實用庫Fabric.js使用手冊CanvasJS
- TypeScript魔法堂:列舉的超實用手冊TypeScript
- validation客戶端驗證框架使用手冊客戶端框架
- 【Emmet 的使用手冊(知識點超全版本)】
- mysql常用命令MySql
- Git 常用命令速查手冊Git
- Microsoft PowerPoint 2019 for Mac 簡體中文安裝使用手冊ROSMac
- Kubernetes部署通用手冊 (支援版本1.19,1.18,1.17,1.16)
- WGLCOUD 使用手冊 - 監控攝像頭的狀態
- motto – MySQL – 常用命令MySql