數(shù)據(jù)庫的高級(jí)操作

創(chuàng)建數(shù)據(jù)庫

CREATE DATABASE chapter08;

選擇數(shù)據(jù)庫

USE chapter08;

創(chuàng)建數(shù)據(jù)表

CREATE TABLE student(
id int primary key auto_increment,
name varchar(20),
age int
);

插入數(shù)據(jù)

INSERT INTO student(name,age) VALUES
('Tom',20),
('Jack',16),
('Lucy',18);

使用SELECT語句查詢表

SELECT * FROM student;

數(shù)據(jù)備份與還原

數(shù)據(jù)的備份

1. 備份單個(gè)數(shù)據(jù)庫

需要注意的是台夺,在使用mysqldump命令備份數(shù)據(jù)庫時(shí),直接在命令行中執(zhí)行命令即可痴脾,不需要登錄到MySQL數(shù)據(jù)庫颤介。

mysqldump -uroot -p666666 chapter08 > chapter08.sql

備份文件中會(huì)包含mysqldump的版本號(hào)、MySQL的版本號(hào)赞赖、主機(jī)名稱滚朵、備份的數(shù)據(jù)庫名稱前域,以及一些SET語句、CREATE語句匿垄、INSERT語句、注釋信息等年堆。其中以“--”字符開頭的都是SQL的注釋;以“/!”開頭变丧、“/”結(jié)尾的語句都是可執(zhí)行的MySQL注釋芽狗,這些語句可以被MySQL執(zhí)行,但在其他數(shù)據(jù)庫管理系統(tǒng)中將被作為注釋忽略痒蓬,這可以提高數(shù)據(jù)庫的可移植性童擎。

需要注意的是,以“/!40101”開頭攻晒、“/”結(jié)尾的注釋語句中顾复,40101是MySQL數(shù)據(jù)庫的版本號(hào),相當(dāng)于MySQL 4.1.1鲁捏,在還原數(shù)據(jù)時(shí)芯砸,如果當(dāng)前MySQL的版本比MySQL 4.1.1高,“/!40101”和“/”之間的內(nèi)容就被當(dāng)作SQL命令來執(zhí)行,如果比當(dāng)前版本低,“/吓揪!40101”和“/”之間的內(nèi)容就被當(dāng)作注釋。

2.備份多個(gè)數(shù)據(jù)庫
mysqldump -uroot -p666666 --database chapter07 chapter08 > web.sql

上述語法中渔期,“--database”參數(shù)后面至少應(yīng)該指定一個(gè)數(shù)據(jù)庫名稱,如果有個(gè)數(shù)據(jù)庫渴邦,則名稱之間用空格隔開

3. 備份所有數(shù)據(jù)庫
使用mysqldump命令備份所有數(shù)據(jù)庫時(shí)疯趟,只需在該命令后使用“--all-databases”參數(shù)即可。

mysqldump -uroot -p666666 --all-database > web2.sql

數(shù)據(jù)的還原

1. 刪除數(shù)據(jù)庫
DROP DATABASE chapter08;

2. 創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE chapter08;

3. 還原數(shù)據(jù)
mysql -uroot -p666666 chapter08 < chapter08.sql

4. 查看數(shù)據(jù)
SELECT * FROM student;

5. 使用用source命令還原數(shù)據(jù)

登錄到MySQL數(shù)據(jù)庫谋梭,使用source命令來還原數(shù)據(jù)信峻。

source chapter08;


用戶管理

user表

  1. 用戶列
  2. 權(quán)限列
  3. 安全列
  4. 資源控制列

查看數(shù)據(jù)庫是否支持ssl加密
SHOW VARIABLES LIKE 'have_openssl';

如果have_openssl的取值為DISABLED,則表示不支持加密章蚣。

創(chuàng)建普通用戶

查看mysql.user表中有哪些用戶
SELECT host,user,password FROM user;

1. 使用GRANT語句創(chuàng)建用戶

GRANT語句不僅可以創(chuàng)建新用戶站欺,還可以對(duì)用戶進(jìn)行授權(quán),該語句會(huì)自動(dòng)加載權(quán)限表纤垂,不需要手動(dòng)刷新矾策,而且安全、正確峭沦、錯(cuò)誤少贾虽,因此使用GRANT語句時(shí)創(chuàng)建用戶最常用的方法。

使用GRANT語句創(chuàng)建一個(gè)新用戶吼鱼,用戶名為user1蓬豁、密碼為123,并授予該用戶對(duì)chapert08.student表有查詢權(quán)限

GRANT SELECT ON chapter08.student TO 'user1'@'localhost' IDENTIFIED BY '123';

2. 使用CREATE USER語句創(chuàng)建用戶

使用CREATE USER語句創(chuàng)建新用戶時(shí)菇肃,服務(wù)器會(huì)自動(dòng)修改相應(yīng)的授權(quán)表地粪,但需要注意的是,該語句創(chuàng)建的新用戶是沒有任何權(quán)限的琐谤。

使用CREATE USER語句創(chuàng)建一個(gè)新用戶蟆技,用戶名為user2、密碼為123斗忌。

CREATE USER 'user2'@'localhost' IDENTIFIED BY '123';

3. 使用INSERT語句創(chuàng)建用戶

需要注意的是,使用INSERT語句創(chuàng)建用戶時(shí)眶蕉,通常只需要添加Host造挽、User和Password這三個(gè)字段即可,其他的字段取其默認(rèn)值刽宪,但由于ssl_cipher界酒、x509_issuer、x509_subject字段時(shí)沒有默認(rèn)值的庇谆,因此INSERT語句創(chuàng)建用戶時(shí)饭耳,還需要為這幾個(gè)字段設(shè)置初始值执解。

使用INSERT語句直接在mysql.user表中創(chuàng)建一個(gè)新用戶,用戶名為user3新蟆、密碼為123琼稻。

INSERT INTO mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) VALUES ('localhost','user3',PASSWORD('123'),'','','');

為了讓user3用戶生效饶囚,還需要手動(dòng)刷新當(dāng)前的權(quán)限表或重新啟動(dòng)MySQL服務(wù)萝风。

FLUSH PRIVILEGES;

刪除普通用戶

1. 使用DROP USER語句刪除用戶

DROP USER語句可以同時(shí)山粗多個(gè)用戶,多個(gè)用戶之間用逗號(hào)隔開睬塌。

使用DROP USER語句刪除用戶user1

DROP USER 'user1'@'localhost';

2. 使用DELETE語句刪除用戶

使用 DELETE語句刪除用戶user2

DELETE FROM mysql.user WHERE Host='localhost' AND User='user2';

由于直接對(duì)user表進(jìn)行操作衫仑,執(zhí)行完命令后需要使用“FLUSH PRIVILEGES;”語句重新加載用戶權(quán)限堕花。

修改用戶密碼

1. 修改root用戶密碼

1)使用mysqladmin命令修改root用戶密碼

mysqladmin -u root -p password 111111

需要注意的時(shí)缘挽,上面提示輸入密碼呻粹,是指root用戶的舊密碼等浊,密碼輸入正確后摹蘑,該語句執(zhí)行完畢衅鹿,root用戶的密碼被修改,下次登錄時(shí)使用新的密碼即可制妄。

2)使用UPDATE語句修改root用戶密碼
UPDATE mysql.user set Password=PASSWORD('666666') WHERE User='root' AND Host='localhost';

上述語句執(zhí)行成功后泵三,還需要使用FLUSH PRIVILEGES重新加載權(quán)限表,然后就可以使用新密碼登錄MySQL數(shù)據(jù)庫了

3)使用SET語句修改root用戶的密碼
SET PASSWORD=PASSWORD('111111');

2. root用戶修改普通用戶的密碼
1)使用GRANT語句修改普通用戶密碼

通常情況下俺抽,為了不影響當(dāng)前用戶的權(quán)限凌埂,可以使用CRANT USAFE 語句修改指定賬戶的密碼诗芜。

GRANT USAFE ON . TO 'user3'@'localhost' IDENTIFIED BY '666666';

2)使用UPDATE語句修改普通用戶的密碼
UPDATE mysql.user SET Password=PASSWORD('123') WHERE User='user3' AND Host='localhost';

需要注意的是伏恐,使用上述語句修改完普通用戶的密碼后,還需要使用FLUSH PRIVILEGES語句重新加載權(quán)限表横蜒。

3)使用SET語句修改普通用戶的密碼

在修改普通用戶密碼時(shí)销凑,還需要增加一個(gè)FOR子句,指定要修改哪個(gè)用戶即可澎蛛。

SET PASSWORD FOR 'user3'@'localhost'=PASSWORD('111111');

3. 普通用戶修改密碼

普通用戶登錄到MySQL服務(wù)器后谋逻,可以通過SET語句來設(shè)置自己的密碼

SET PASSWORD=PASSWORD('111111');


權(quán)限管理

MySQL的權(quán)限

MySQL中的權(quán)限信息被存儲(chǔ)在MySQL數(shù)據(jù)庫的user、db毁兆、host气堕、tables_priv、column_priv和procs_priv表中摹菠,當(dāng)MySQL啟動(dòng)時(shí)會(huì)自動(dòng)加載這些權(quán)限信息骗爆,并將這些權(quán)限信息讀取到內(nèi)存中。

授予權(quán)限

使用GRANT語句創(chuàng)建一個(gè)新用戶摘投,用戶名為user4虹蓄,密碼123,user4用戶對(duì)所有數(shù)據(jù)庫有INSERT外臂、SELECT權(quán)限律胀,并使用WITH GRANT OPTION子句。

GRANT INSERT,SELECT ON . TO 'user4'@'localhost' IDENTIFIED BY '123' WITH GRANT OPTION;

查詢user表中的用戶權(quán)限

SELECT Host,User,Password,Insert_priv,Select_priv,Grant_priv FROM mysql.user WHERE user='user4' \G

查看權(quán)限

使用SHOW GRANTS語句查詢r(jià)oot用戶的權(quán)限

SHOW GRANTS FOR 'root'@'localhost';

使用SHOW GRANTS語句罪佳,查詢user4用戶的權(quán)限信息

SHOW GRANTS FOR 'user4'@'localhost';

收回權(quán)限

使用REVOKE語句收回user4用戶的INSERT權(quán)限

REVOKE INSERT ON . FROM 'user4'@'localhost';

查看權(quán)限

SELECT Host,User,Password,Insert_priv FROM mysql.user WHERE user='user4' \G

使用REVOKE語句收回user4的所有權(quán)限

REVOKE ALL PRIVILEGES,GRANT OPTION FROM 'user4'@'localhost';

查看權(quán)限

SELECT Host,User,Password,Insert_priv,Select_priv,Grant_priv from mysql.user where user='user4' \G

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市克握,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掰曾,老刑警劉巖勋眯,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異塞蹭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)岗屏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門这刷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暇屋,“玉大人洞辣,你說我怎么就攤上這事《瘢” “怎么了著瓶?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵材原,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我麦向,道長(zhǎng)客叉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任卵慰,我火速辦了婚禮裳朋,結(jié)果婚禮上吓著,老公的妹妹穿的比我還像新娘送挑。我一直安慰自己惕耕,他們只是感情好诫肠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布栋豫。 她就那樣靜靜地躺著,像睡著了一般蛤铜。 火紅的嫁衣襯著肌膚如雪骡送。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音派敷,去河邊找鬼撰洗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛试躏,可吹牛的內(nèi)容都是我干的设褐。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼犀被,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼寡键!你這毒婦竟也來了雪隧?” 一聲冷哼從身側(cè)響起员舵,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤固灵,失蹤者是張志新(化名)和其女友劉穎劫流,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祠汇,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡诗力,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年我抠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓣窄。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡俺夕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出劝贸,到底是詐尸還是另有隱情逗宁,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布件甥,位于F島的核電站嚼蚀,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏管挟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一守谓、第九天 我趴在偏房一處隱蔽的房頂上張望斋荞。 院中可真熱鬧,春花似錦虐秦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽暮现。三九已至,卻和暖如春栖袋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背菇怀。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留帅霜,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓钝尸,卻偏偏與公主長(zhǎng)得像搂根,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子猪叙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1犬第,MySQL權(quán)限體系 mysql 的權(quán)限體系大致分為5個(gè)層級(jí): 全局層級(jí): 全局權(quán)限適用于一個(gè)給定服務(wù)器中的所有...
    不排版閱讀 948評(píng)論 0 4
  • 什么是數(shù)據(jù)庫芒帕? 數(shù)據(jù)庫是存儲(chǔ)數(shù)據(jù)的集合的單獨(dú)的應(yīng)用程序。每個(gè)數(shù)據(jù)庫具有一個(gè)或多個(gè)不同的API鉴分,用于創(chuàng)建带膀,訪問,管理...
    chen_000閱讀 4,035評(píng)論 0 19
  • 1.A simple master-to-slave replication is currently being...
    Kevin關(guān)大大閱讀 5,969評(píng)論 0 3
  • 標(biāo)簽(空格分隔): Linux 運(yùn)維 MySQL sql文件hellodb.sql 架構(gòu) MySQL被設(shè)計(jì)為一個(gè)單...
    uangianlap閱讀 705評(píng)論 0 1
  • 上午,偌大的辦公室成了一個(gè)人的地盤点额。陽光透進(jìn)來,使整個(gè)空間明媚了許多还棱。 效率不錯(cuò),處理了兩件火燒眉毛的...
    Lucyxiu閱讀 230評(píng)論 2 2