防偽碼:鍥而舍之,朽木不折;鍥而不舍,金石可鏤
第三章、MySQL數(shù)據(jù)庫系統(tǒng)
目前,比較主流的網(wǎng)站構(gòu)架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作為操作系統(tǒng),Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫,PHP作為服務(wù)器端腳本解釋器。由于這四個軟件都是自由或開放源碼軟件(FLOSS),因此使用這種方式不用花一分錢就可以建立起一個穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。
為方便演示,我們將使用圖形化界面講解MySQL基本操作、備份恢復(fù)以及用戶授權(quán)
一、起源
a、MySQL是開源的關(guān)系型數(shù)據(jù)庫服務(wù)器軟件
b、目前由Oracle公司開發(fā)和維護(hù)
c、官網(wǎng):http://www.mysql.com/
二、優(yōu)點(diǎn)
a、多線程、多用戶
b、基于C/S(客戶端/服務(wù)器)架構(gòu)
c、高性能、高可靠、易于使用
3、MySQL的編譯安裝
三、MySQL編譯安裝
1、準(zhǔn)備工作:
a、確認(rèn)沒有使用rpm方式安裝,否則建議將其卸載
rpm -q mysql-server mysql(查詢狀態(tài))
rpm -ivh /media/RHEL_6.5\ x86_64\ Disc\ 1/Packages/ncurses-devel-5.7-3.20090208.el6.x86_64.rpm(安裝自帶的ncurses-devel包,即軟件開發(fā)包)
b、cmake編譯安裝
2、源碼編譯安裝
a、創(chuàng)建運(yùn)行用戶,此處以用戶和組都為mysql
b、解包
c、配置(默認(rèn)使用字符集utf8,并且添加其他字符集的支持)
字符如下:
cmake -DCMAKE_INSTALL_PREFIX(MySQL數(shù)據(jù)庫程序存放目錄)=/usr/local/mysql
-DSYSCONFDIR(初始化參數(shù)文件目錄)=/etc
-DDEFAULT_CHARSET(默認(rèn)字符集編碼,如utf8)=utf8
-DDEFAULT_COLLATION(默認(rèn)字符集校對規(guī)則)=utf8_general_ci
-DWITH_EXTRA_CHARSETS(額外支持的其他字符集編碼)=all
d、編譯并安裝
3、安裝后的調(diào)整
a、對數(shù)據(jù)庫目錄進(jìn)行權(quán)限設(shè)置
b、建立配置文件(一般選擇my-medium.cnf即可,該文件能夠滿足大多數(shù)企業(yè)的中等應(yīng)用需求)
注:MySQL服務(wù)器的配置文件默認(rèn)位于/etc/my.cnf
MySQL端口號:3306
SQLServer端口號:1433(面試題)
c、初始化數(shù)據(jù)庫
以內(nèi)置賬戶執(zhí)行初始化腳本mysql_install_db,指定數(shù)據(jù)存放目錄
/usr/local/mysql/scripts/mysql_install_db
--user=mysql --basedir(基本目錄)=/usr/local/mysql
--datadir(數(shù)據(jù)目錄)=/usr/local/mysql/data/
d、設(shè)置環(huán)境變量(即每次開機(jī)會自動加載識別)
注:. /etc/profile(空格代表另一個目錄在執(zhí)行)
4、添加系統(tǒng)服務(wù)(便于chkconfig進(jìn)行管理)
注:將support-files文件夾下的mysql.server腳本,復(fù)制到/etc/rc.d/init.d目錄下,
改名為mysqld,設(shè)置執(zhí)行權(quán)限,然后將mysqld添加為系統(tǒng)服務(wù)
然后啟動服務(wù),查看運(yùn)行狀態(tài),監(jiān)聽端口
訪問數(shù)據(jù)庫;
mysqladmin -u root -p password '新密碼'(為安全起見,建議更改初始密碼,默認(rèn)無密碼)
mysql -u root -p
exit或quit可以退出mysql命令工具
四、使用MySQL數(shù)據(jù)庫
1、查看數(shù)據(jù)庫結(jié)構(gòu)
show database(查看庫)
use mysql;
show tables;(切換到mysql數(shù)據(jù)庫,查看表)
查看表的結(jié)構(gòu)(以user表為例)
use user;
describe user;
2、創(chuàng)建及其刪除庫和表(此處以benet庫,366班級為例)
創(chuàng)建benet數(shù)據(jù)庫
創(chuàng)建學(xué)生表(列:name 數(shù)據(jù)類型:char (48))、default默認(rèn)密碼字串、primary表示以name做主鍵
password表示密碼為密文)
插入數(shù)據(jù)并查詢
增刪改查的語句和sqlserver的語句完全一樣,可參考sqlserver語句,這里不再詳細(xì)演示
五、維護(hù)MySQL數(shù)據(jù)庫(重點(diǎn))
1、數(shù)據(jù)庫用戶授權(quán)
頻繁使用root賬號會給服務(wù)器帶來一定的安全風(fēng)險,實(shí)際工作中,會建立一些低權(quán)限的用戶,
給予相應(yīng)的權(quán)限,從而使數(shù)據(jù)庫的風(fēng)險降至最低
REVOKE 權(quán)限列表 on 庫名.表名 to 用戶名@來源地址 identified by ‘密碼’
權(quán)限列表: 增刪改查,以逗號分離
庫名.表名:可使用通配符“*”,例如使用“benet.*”表示benet數(shù)據(jù)庫中的所有表
用戶名@來源地址:誰能連接,從哪里連接;可使用通配符“%”,表示某個區(qū)域或網(wǎng)段內(nèi)所有地址
identified:用戶連接數(shù)據(jù)庫時所使用的密碼字符串,若省略,則密碼為空
實(shí)驗(yàn)演示(添加“xiaoming”用戶,允許從本機(jī)訪問,對benet數(shù)據(jù)庫中的所有表具有查詢權(quán)限,
驗(yàn)證密碼為“123456”):
查看權(quán)限:show grants for 用戶名@來源地址
撤銷權(quán)限:revoke 權(quán)限列表 on 數(shù)據(jù)庫名.表名 from 用戶名@來源地址
2、數(shù)據(jù)庫的備份與恢復(fù)
及時備份數(shù)據(jù)庫時信息安全管理的重要工作內(nèi)容之一,MySQL數(shù)據(jù)庫備份可采用多種方式
A、可直接備份目錄 /usr/local/mysql/var
或B、使用專用備份工具 mysqldump
本章主要講解MySQL自帶的傾倒工具mysqldump為例
格式1:導(dǎo)出庫中的部分表
mysqldump 選項(xiàng) 表名1 表名2 >?。瘋浞萋窂剑瘋浞菸募?/span>
格式2:導(dǎo)出一個或多個完整的庫(含其中的表)
mysqldump 選項(xiàng) --database > /備份路徑/備份文件名
格式3:備份MySQL服務(wù)器中所有數(shù)據(jù)庫
mysqldump 選項(xiàng) --databases > /備份路徑/備份文件名
恢復(fù)數(shù)據(jù)庫:mysql 選項(xiàng) 庫名 表名 < /備份路徑/備份文件名
實(shí)驗(yàn)演示:
格式1(以root的身份,備份benet數(shù)據(jù)庫中的t366表,名為benet-t366.sql)
格式2(以root的身份,備份benet數(shù)據(jù)庫,名為benet.sql)
格式3(以root的身份,備份mysql所有的數(shù)據(jù)庫,名為all-data.sql)
查看備份文件內(nèi)容(使用grep,less,cat等文本工具可以查看腳本內(nèi)容)
恢復(fù)數(shù)據(jù)庫(刪除表t366,然后恢復(fù))
驗(yàn)證導(dǎo)入結(jié)果:
實(shí)驗(yàn)到此就演示完畢了,希望大家學(xué)以致用!謝謝!
本文出自 “一盞燭光” 博客,謝絕轉(zhuǎn)載!
更多建議: