Linux的MySQL數(shù)據(jù)庫系統(tǒng)

2018-07-31 14:41 更新

防偽碼:鍥而舍之,朽木不折;鍥而不舍,金石可鏤

            第三章、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)載!

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號