1.用戶操作
- 注意:操作用戶本身是需要有權(quán)限的。
1.1 新建用戶
新建用戶需要用戶名,密碼和允許登錄的主機(jī)IP;
命令格式:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
username:用戶名;
password:用戶密碼;
host:表示允許連接到數(shù)據(jù)庫服務(wù)的主機(jī),localhost表示本地主機(jī),%通配符表示允許任意主機(jī)登錄。
* 注意:這里的host會(huì)影響到遠(yuǎn)程登錄操作數(shù)據(jù)庫
以下命令創(chuàng)建用戶名為liguo,密碼為12345678的用戶,該用戶僅允許通過本地主機(jī)登錄:
CREATE USER 'liguo'@'localhost' IDENTIFIED BY '12345678';
1.2 用戶授權(quán)
通過1.1中的命令創(chuàng)建的用戶默認(rèn)是沒有增刪改查權(quán)限的,需要使用GRANT命令來授權(quán)。授權(quán)需要制定要授權(quán)的用戶、所授予的權(quán)限和給予操作權(quán)限的數(shù)據(jù)表,命令格式如下:
GRANT privileges ON db_name.table_name TO 'username'@'host'
privileges:要授予的權(quán)限,insert,delete,update,select對(duì)應(yīng)增刪改查,要全部授予可以使用ALL;
db_name:要給予操作權(quán)限的數(shù)據(jù)庫;
table_name:要給予操作權(quán)限的數(shù)據(jù)表,允許全部數(shù)據(jù)表可以使用通配符.;
可以使用
SHOW GRANTS FOR 'username'@'host';
來查詢用戶的操作權(quán)限。
操作權(quán)限變更后,使用FLUSH privileges命令可以在權(quán)限修改后不用重啟mysql服務(wù)立即生效。
1.3 取消授權(quán)
使用REVOKE命令撤銷,命令格式與GRANT類似:
REVOKE privilege ON db_name.table_name FROM 'username'@'host';
1.4 刪除用戶
太簡單了!
DROP USER 'username'@'host';
1.5 用戶信息查詢
mysql.user是一個(gè)記錄用戶信息的數(shù)據(jù)表,里面記錄了用戶所有的信息,可以使用SELECT命令查詢?cè)摫砀褚缘玫接脩粜畔ⅲ褂?code>SHOW COLUMNS FROM mysql.user可以查看數(shù)據(jù)表的列名。
查看所有用戶的所有信息:
SELECT * FROM mysql.user;
查看用戶liguo的用戶名,主機(jī),查詢權(quán)限信息:
SELECT user,host,Select_priv FROM mysql.user where user='liguo';
2. 遠(yuǎn)程連接數(shù)據(jù)庫
mysql服務(wù)器處于安全考慮,默認(rèn)是不允許遠(yuǎn)程連接數(shù)據(jù)庫的。因此,為了遠(yuǎn)程登錄mysql服務(wù)器,需要開放權(quán)限,修改配置文件。
2.1 開放用戶的遠(yuǎn)程登錄權(quán)限(需要root權(quán)限)
開放權(quán)限后可以使得該用戶可以遠(yuǎn)程登錄到該服務(wù)器:
GRANT ALL PRIVILEGES ON *.* TO 'liguo'@"%" IDENTIFIED BY "passwd" WITH GRANT OPTION;
修改之后,用戶liguo只要使用密碼'passwd'就可以從任意主機(jī)(%)連接到該數(shù)據(jù)庫了,WITH GRANT OPTION表示該用戶具有授權(quán)給其他用戶的權(quán)限。
2.2 修改mysql的配置
將配置文件中的 bind-address = 127.0.0.1 這一行用'#'注釋掉,這里注意,不同版本的mysql配置文件可能不一樣。
我使用的是ubuntu +mysql5.7,配置文件路徑為:/etc/mysql/mysql.conf.d/mysqld.cnf
使用sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf找到對(duì)應(yīng)的一行,注釋掉后保存即可;
2.3 重啟mysql服務(wù)
使用 service mysql restart重啟服務(wù)器使得配置生效。
重啟過后,遠(yuǎn)程客戶端通過-h參數(shù)指定主機(jī)ip即可實(shí)現(xiàn)遠(yuǎn)程連接。
3.增刪改查
3.1 建表
CREATE TABLE IF NOT EXISTS table_name
(
key_name1 key_type1,
key_name2 key_type2,
...
key_namen key_typen,
PRIMARY KEY(key_name)
) default charset=utf8;
key_name:鍵名
key_type:鍵類型
PRIMARY KEY(key_name):設(shè)置主鍵
default charset=utf8:設(shè)置編碼為utf8,這樣就能存儲(chǔ)中文字符了
注意:要存儲(chǔ)中文字符,還需要修改配置文件,在文件中加入以下配置:
[mysqld]
collation-server = utf8_unicode_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
[client]
default-character-set = utf8
[mysql]
default-character-set = utf8
修改后重啟數(shù)據(jù)庫服務(wù)器即可。
另外,使用 SHOW VARIABLES LIKE '%char%;'命令可以查詢服務(wù)器的字符集編碼。
3.2 增加數(shù)據(jù)
INSERT INTO table_name (key1,key2...keyn) VALUES (value1,value2,value3);
key:要添加的鍵名
value:要添加的值
3.3 刪除數(shù)據(jù)
DELETE FROM table_name WHERE cause;
cause:記錄所滿足的條件
3.4 修改數(shù)據(jù)
UPDATE table_name SET key1=value1,key2=value2 WHERE cause;
3.5 查詢數(shù)據(jù)
SELECT col1,col2..coln FROM table_name WHERE cause;
col1-n為要查詢的列名(鍵名),可以使用'*'表示通配符。