ddl: create drop alter
dml:對(duì)數(shù)據(jù)進(jìn)行管理update insert into delete truncate
dql:查詢(xún)語(yǔ)句 select
dcl:權(quán)限控制語(yǔ)句grant revoke
創(chuàng)建用戶(hù)
create user '用戶(hù)名'@'主機(jī)' identified by '密碼'
加密
-
SELECT PASSWORD('密碼'); #先獲取加密的密碼
-
CREATE USER 'lisi'@'localhost' IDENTIFIED BY PASSWORD '加密的密碼';
查看當(dāng)前登錄的用戶(hù)
?select user();
賦權(quán)
grant all privileges on *.* to 'ky32'@'localhost' identified by '123456';
grant 賦權(quán)的開(kāi)頭語(yǔ)句
all privileges賦予所有權(quán)限
on*.*對(duì)所有庫(kù)都有操作權(quán)限
on kgc.*只能對(duì)指定的庫(kù)進(jìn)行操作。
to 'ky32'@'192.168.233.22'賦權(quán)給哪個(gè)用戶(hù)
identified by'123456';使用哪個(gè)密碼進(jìn)行登錄。創(chuàng)建用戶(hù)的時(shí)候不寫(xiě),密碼為空。
show grants for 'ky32'@'localhost';
刪除權(quán)限和權(quán)限控制
對(duì)存在用戶(hù)進(jìn)行授權(quán)?
GRANT 權(quán)限列表 ON 數(shù)據(jù)庫(kù)名.表名 TO '用戶(hù)名'@'來(lái)源地址' [IDENTIFIED BY '密碼'];
對(duì)不存在的用戶(hù)進(jìn)行創(chuàng)建并授權(quán)?
GRANT ALL PRIVILEGES ON *.* TO '用戶(hù)名'@'來(lái)源地址' IDENTIFIED BY '密碼';
多權(quán)限,重命名
刪除用戶(hù)
修改密碼
set password = password ('新密碼');
root修改其他用戶(hù)密碼
set password for '用戶(hù)'@'登錄地址' =password ('密碼');
root密碼的忘記后的修改找回方法
該操作必須是在數(shù)據(jù)庫(kù)本機(jī)且為root用戶(hù),才可進(jìn)行
第一步:添加跳過(guò)的初始配置
-
vim /etc/my.cnf
-
skip-grant-tables?
第二步:重啟數(shù)據(jù)庫(kù)服務(wù) ,修改數(shù)據(jù)庫(kù)用戶(hù)表中root密碼
systemctl restart mysql.service
mysql
mysql> UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('123123') where user='root';
mysql> flush privileges;#刷新數(shù)據(jù)庫(kù)
mysql> quit#退出
第三步:登錄測(cè)試新密碼?
mysql -u root -p123123
第四步:撤銷(xiāo)添加的免密碼認(rèn)證設(shè)置,重啟數(shù)據(jù)庫(kù)服務(wù)?
-
#刪除配置文件中的配置,之后重啟服務(wù)。
-
注意:最后再把/etc/my.conf 配置文件里的skip-grant-tables 刪除,并重啟mysql服務(wù)。
-
vim /etc/my.cnf
-
systemctl restart mysqld.service
查看用戶(hù)已有權(quán)限的操作?
SHOW GRANTS;
?總結(jié)
用戶(hù)管理操作
1.create user 'username'@'address' identified by 'password'; ? #創(chuàng)建用戶(hù) ??
2.select user,host,authentication_string from mysql.user; ? #查看用戶(hù)信息 ??
3.rename user old_user to new_user; ? ? ? ?#修改用戶(hù)名 ??
4.drop user '用戶(hù)名'@'來(lái)源地址'; ? ? ? ? ? ?#刪除用戶(hù) ?? ?
5.set password = password('XXXX'); ? ? ? ? #修改當(dāng)前登錄用戶(hù)的密碼 ??
6.set password for '用戶(hù)名'@'來(lái)源地址' = password('XXXX'); ? ? #修改其他用戶(hù)的密碼 ??
7.select user (); ? ? ?#查看當(dāng)前登錄用戶(hù)和來(lái)源地址 ??
8.忘記root用戶(hù)密碼的解決方法: ?
? ? 修改mysql配置文件/etc/my.cnf,在 [mysqld] 配置項(xiàng)下加入 skip-grant-tables
? ? service mysqld restart ? #重啟服務(wù)
? ? mysql ? #免密登陸 ?
? ? update mysql.user set authentication_string=password('新密碼') where user='root'; ?
? ? #修改密碼 flush privileges; #刷新數(shù)據(jù)庫(kù)
用戶(hù)授權(quán)操作?
1.grant 權(quán)限列表/ALL ON 庫(kù)名.表名 to 'username'@'address' identified by '密碼'; ?? ? #授予用戶(hù)權(quán)限
2.show grants; ? ? #查看當(dāng)前用戶(hù)(自己)的權(quán)限 ? ? ? ? ? ? ? ?
3.show grants for 'username'@'address'; ? ? ?#查看其他用戶(hù)的權(quán)限 ??
4.revoke 權(quán)限列表/ALL on 庫(kù)名.表名 from 'username'@'address'; ? #撤銷(xiāo)用戶(hù)的權(quán)限 ?? ?
5.mysql -u 用戶(hù)名 -p[密碼] -h 目標(biāo)IP/主機(jī)名 -P 端口號(hào) ? ? ? ? ? ? #遠(yuǎn)程連接mysql
索引
索引的作用:
1、利用索引數(shù)據(jù)庫(kù)可以快速定位,大大加快查詢(xún)速度,主要作用
2、表的數(shù)據(jù)很多,查詢(xún)需要關(guān)聯(lián)多個(gè)表,這個(gè)時(shí)候索引也可以提高查詢(xún)速度
3、加快表與表之間的連接速度
4、使用分組和排序時(shí),可以大大減少時(shí)間
5、提高數(shù)據(jù)庫(kù)恢復(fù)數(shù)據(jù)時(shí)的速度。
索引創(chuàng)建的原則:
1、有索引,數(shù)據(jù)會(huì)先進(jìn)行索引查詢(xún),然后定位數(shù)據(jù),索引使用不當(dāng),反而會(huì)增加數(shù)據(jù)庫(kù)的負(fù)擔(dān)。
2.主鍵,外鍵必須有索引(創(chuàng)建好了主鍵和外鍵自動(dòng)就是索引,不需要額外聲明)
3.一個(gè)表超過(guò)了300行記錄,必須要有索引,否則數(shù)據(jù)庫(kù)會(huì)遍歷表的所有數(shù)據(jù)。
4.互相之間有關(guān)聯(lián)的表,在這個(gè)關(guān)聯(lián)字段應(yīng)該設(shè)置索引
5.唯一性太差的字段,不適合創(chuàng)建索引更新太頻繁的字段,不適合做索引。
6.經(jīng)常被where條件匹配的字段,尤其是表數(shù)據(jù)比較多的,應(yīng)該創(chuàng)建索引。
7.在經(jīng)常進(jìn)行g(shù)roup by(分組)order by(排序)的字段上要建立索引。
8.索引的列的字段越小越好,長(zhǎng)文本的字段,不適合建立索引。
索引的類(lèi)型:
1.B-樹(shù)索引 BTREE
樹(shù)形結(jié)構(gòu)的索引,也是大部分?jǐn)?shù)據(jù)庫(kù)的默認(rèn)索引類(lèi)型。
根節(jié)點(diǎn):樹(shù)的最頂端的分支節(jié)點(diǎn)
分支節(jié)點(diǎn):指向索引里其他的分支節(jié)點(diǎn),也可以是葉子節(jié)點(diǎn)
葉子節(jié)點(diǎn):直接指向表里的數(shù)據(jù)行
2.哈希索引:散列索引
把任意長(zhǎng)度的輸入,通過(guò)散列算法變換成固定長(zhǎng)度的輸出。
散列值…分別對(duì)應(yīng)數(shù)據(jù)里的列和行
mysqI的默認(rèn)引擎:INNODB默認(rèn)的索引類(lèi)型就是Btree。
MEMORY 引擎可以支持HASH,也是他的默認(rèn)索引。
先算散列值,然后對(duì)應(yīng),速度比較慢,比btree慢。
hash的索引匹配:=in () <=>
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-733643.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-733643.html
到了這里,關(guān)于Mysql數(shù)據(jù)庫(kù)中的用戶(hù)管理與授權(quán)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!