mysql 資料庫簡介

Post on 28-Jan-2016

99 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

MySQL 資料庫簡介. - PowerPoint PPT Presentation

TRANSCRIPT

MySQL資料庫簡介MySQL資料庫是關聯式資料庫管理系統 (relational database management system)RDBMS,而且能夠使用標準的結構查詢語言 (SQL)。MySQL資料庫是目前市面上最快速且最穩定的資料庫之一,而且他的價格也是最便宜,甚至免費。在目前架設商業網站中, PHP配上MySQL資料庫是使用最為廣範的,就像是 ASP.NET配上 SQL SERVER一樣好用與方便。資料庫系統扮演一個很重要的角色在資料的管理和組織上。當我們有數百萬筆的交易記錄,我們可以使用資料庫去作管理和組織,然後再將資料作分析和使用。MySQL資料庫可以幫助我們下列的一些工作。

1. MySQL資料庫系統幫我們放置資料到資料庫系統中﹕MySQL將資料透過其管理系統將資料放入磁碟中。

2. MySQL資料庫系統將我們需要的資料從資料庫系統取出﹕MySQL透過資料庫系統將我們所需要的資料從磁碟取出。例如 select * from student就可以從 student資料表取出所有學生的資料,而這就是 SQL結構查詢語言的語法。

3. MySQL資料庫可以彈性的取出所要資料﹕MySQL資料庫可以透過結構查詢語言 (SQL)彈性的取出資料。例如我們要取出成績高於 95分的學生 select * from student where grade >90。

4. MySQL資料庫支援多人可以同時存取資料庫資料﹕在網路上可能有數百人同時使用MySQL資料庫系統而存取相關資料,這時我們的MySQL資料庫是有支援讓許多人同時存取。

5. MySQL資料庫支援遠端使用者透過網路來存取和傳送資料﹕我們可以透過網路將資料庫的資料傳送出去,也可以將遠端的資料傳送進來資料庫。

1-1MySQL資料庫概念• MySQL是在網路上速度處理很快的關聯式資料庫系統,最重要的是免費,又可以滿足台灣中小型企業的需求。

• 我們先來看我們使用者是如何存取資料庫。

• 簡單的MySQL資料庫系統

• 我們使用者使用資料庫系統,管理資料庫系統,就像是如圖中所示。

1-2MySQL是主從式資料庫• 我們使用者可以經由網路去讀取遠端的檔案系統或者是資料庫,當然也可以和遠端的另外一位使用者溝通。

1-3資料庫管理系統與 SQL語言• 資料庫管理系統其實就是管理資料庫的軟體系統。• <<1>>資料庫管理的基本功能• 資料庫管理系統 (DBMS)負責整個資料庫的建立、資料存取與權限設定、資料的備份………… .,而我們MySQL也是一個很好用的資料庫,他也擁有資料庫的基本功能。

• 資料定義:定義並管理各類型資料欄。從建立資料庫及資料表欄位的型別、功能以及資料表間的關聯性,都要具備完整的修改、建立及使用功能。

• 資料安全:應具備設定使用者的帳號、密碼與權限,讓使用者能夠使用授權範圍的資料。

• 資料備份:提供方便的資料庫備份功能。當資料庫當機或者資料毀損時可以救回,讓我們的資料庫能夠更穩定更安全的使用,資料庫的資料都可獲得保障。

• 資料處理:就是提供使用者,對資料的存取能力。如新增資料、修改資料、撤除資料、與查詢資料。

• <<2>>SQL

• SQL稱為結構化查詢語言,他是 ANSI SQL92的標準語法,這也是關聯式資料庫使用最多的語言。

1-4安裝MySQL

• 我們在安裝 Linux光碟時就有選定安裝MySQL套件了,下面是我們

• 在這裡講的是較為簡單的安裝。

• 使用 rpm –qa|grep mysql就可以知道安裝了哪一些MySQL的元件。這是在 Linux中所查詢出的套件。

• MySQL資料庫有二進位檔 binary、 RPM檔和原始檔的格式。 Binary和 RPM檔是比較容易安裝,但是我們要使用其一開始就預設的組態。原始檔是比較難安裝的,因為我們在編譯軟體時需要同時設定組態和參數。MySQL包含下列的原件,mysqld 伺服器、使用者端程式 (mysql,mysqladmin)及 C 函式和標頭檔、文件、實驗資料庫和語文的支援。

1-4-1使用 rpm套件檔安裝• 我們可以在 http://www.mysql.com下載MySQL資料庫。我們可以安裝 RPM的檔案。MySQL的 RPM檔案包括下列﹕

1. MySQL-client-3.23.56-1.i386.rpm為使用者端的程式。2. MySQL-3.23.56-1.i386.rpm為MySQL資料庫的主程式 (伺服器端軟體 )。

3. MySQL-Max-3.23.56-1.i386.rpm為主程式的附加程式。4. MySQL-bench-3.23.56-1.i386.rpm為實驗和測試。5. MySQL-shared-3.23.56-1.i386.rpm被分享的使用者端函式庫。6. MySQL-devel-3.23.56-1.i386.rpm支援發展的使用者端程式和標頭檔 (假如我們要使用到這個 Perl DBI程式來存取MySQL資料庫,就會使用到這個套件。

• 我們可以使用 rpm –i rpm檔案 來安裝MySQL的套件。首先我們先安裝MySQL資料庫的使用者端程式。

• #rpm –i MySQL-client- 版本 .rpm • 然後我們安裝MySQL的主程式• #rpm -i MySQL- 版本 .rpm的主程式• 如果我們要額外的程式,我們可以使用• #rpm –i MySQL-Max- 版本 .rpm • 假如我們要用使用端的程式支援,我們可以安裝發展套件• #rpm -i MySQL-devel- 版本 .rpm• 假如我們要從MySQL的來源套件檔中安裝,我們可以使用

• #rpm –recompile MySQL- 版本 .src.rpm

1-4-2使用原始檔安裝• MySQL的原始檔命名為mysql- 版本 .tar.gz。板本就是mysql資料庫的版本編號。例如﹕ mysql-3.23.56-pc-linux-

i686.tar.gz中 3.23.56就是我們MySQL原始檔的版本編號。版本為 4開頭的版本為我們MySQL最新發展的版本,目前一般大眾還是使用 3.23.**的為主。

• % tar zxf mysql- 版本 .tar.gz 來解開MySQL資料庫的壓縮• 當我們解開壓縮時再進入到 mysql的目錄• % cd mysql- 版本• 在我們安裝前我們要組態和編譯 mysql的檔案,我們使用 configure組態指令來組態MySQL資料庫。 ./ 指的是在目

前這個目錄執行。• %./configue• 我們在組態mysql的同時可以指定一些參數,我們可以用下列的指令。• %./configure --help• 下列為一些常用的組態參數﹕• --with-innodb為支援 InnoDB資料表, --without-innodb為不支援 InnoDB資料表,在MySQL 4資料庫中 InnoDB

資料表是內建的。• --with-berkeley-db包含支援 BDB資料表。• --without-server 僅支援組態使用者端的MySQL 環境,我們透過使用者端的MySQL 環境和遠端的MySQL資料庫

作聯結。• --with-embedded-server建立崁入式伺服器函式 libmysqld。• --prefix=path_name 預設安裝MySQL資料庫的根目錄為 /usr/local。當我們要組態其安裝路徑在 /usr/local/mysql

的位置時可以使用下列﹕• %./configure –prefix=/usr/local/mysql• --localstatedir=path_name這個選項是改變資料目錄的路徑,假如我們不想將我們的資料庫資料放在安裝的根目錄

下,我們可以使用這個指令選項。• --with-low-memory選項可以讓我們編譯MySQL資料庫的 sql/sql_yacc.cc檔案更加方便。

• 組態範例﹕我們可以組態有支援交易機制的資料庫 innodb,而且將MySQL的安裝路徑放置到 /usr/local/mysql的目錄下,並且改變放置 MySQL資料庫的地方為 /home的目錄底下。

• %./configure --with-innodb --prefix=/user/local/mysql --localstatedir=/home

• 在我們執行組態 configure 指令後 ,我們可以編譯和安裝MySQL資料庫。

• %make• %make install• 假如在組態時,我們沒有使用— prefix選項,我們就必需以超級使用者 root的身份來執行安裝的動作。

1-5MySQL的檔案系統• 我們的資料庫也是檔案系統的一部份,我們可以看一下 linux的檔案系統結構。• / 根目錄,是整個 linux檔案系統的起點。• /bin 存放基本的 linux 指令• /dev 存放實際週邊裝置的特殊檔案。包括終端機檔 ttyxx、軟碟 fdxx、硬碟

hdxx、 scsi(sdxx)• /etc 存放和系統有關的程式和檔案• /lib 是 library的縮寫,放函式庫• /lost+found linux關機的時候,都會檢查整個檔案系統,如果有異常現象,就會放在這裡。

• /tmp 暫存區• /var 存放一些內容會常常改變的檔案,我們mysql的資料檔案就是放在這個目錄下

• /mnt 放置光碟機、軟碟機、作為外部檔案• /usr 存放很多給使用者用的重要子目錄,而我們mysql的基礎目錄就放在這裡。

• 遠端多位使用者透過網路界面 (TCP/IP)去存取資料,再透過 MySQL伺服器系統的管理來到 MySQL的資料目錄,而MySQL資料目錄下存放著許多不同的MySQL資料庫資料,再到最底層的MySQL資料表。

• 我們可以使用mysqladmin variable來得到 mysql 相關的系統與環境變數。

• basedir是MySQL的基礎軟體放置目錄,預設是放置在 /usr目錄下。

• datadir是MySQL的資料放置目錄,預設是放置在 /var/lib/mysql目錄下。

• Language是放置 MySQL的語言,預設放在 /usr/share/mysql/English/。

• Pid_file是放置 MySQL的行程編號,預設是在 /var/run/mysqld/mysqld.pid。

• tmpdir是放置 MySQL的暫存檔,預設是在 /tmp目錄下。

• 在 Linux中啟動 MySQL資料庫。

• 一般在安裝MySQL其啟動程式為mysql.server,它是在 /usr/share/mysql目錄下,下面的指令可以啟動 mysql。

• #/usr/share/mysql/mysql.server start• 如果我們要在電腦啟動時自動啟動 MySQL我們可以設定。

• #chkconfig mysqld on

1-6MYSQL的資料目錄• 內建的資料目錄位置是編譯到伺服器中的。若由 source套件編譯安裝,就要看我們所安裝的路徑。如果是 rpm套件或是原本光碟安裝作業系統時 ,檔案目錄是 /var/lib/mysql。這個目錄下一開始存放著我們的原始資料庫,有mysql資料庫和 test資料庫。

• 這是我們到 mysql資料庫底下所看到的檔案。其中*.frm為格式檔,他描述了資料表的結構 ( 例如欄位、欄位型式、索引 ) ; *.myd為資料檔,他描述了資料表的資料實體 (entity) ;*.myi他描述了資料檔案的索引。

• Mysql資料庫是MySQL預設的資料庫裡面存放著著 MySQL使用者的權限與安全。

• Mysql資料庫中有六個資料表, db、 host、 user、tables_priv、 func、 colums_priv。

• 其中 user、 host、 db 三個資料表控制使用者、使用者來源,即對伺服器的控制; tables_priv、 columns_priv 則對資料庫中的資料表設定權限, func資料表則是功能的設定。

• 進入 mysql後,我們使用mysql資料庫。

• Mysql>use mysql;• 再用 describe 指令就可以顯示出資料表欄位的情況。

1-7對MySQL的存取概念• 我們的資料組成資料表 (table),再由數個資料表組成資料庫,再由數個資料庫組成一個檔案系統,再由我們的資料庫伺服器來作管理,這顯示了資料庫的階層。

• 因為在MySQL資料庫常駐行程 mysqld或mysql.server 啟動後,它就會讀取 /etc/my.cnf的設定,所以我們可以在 /etc/my.cnf來設定MySQL的選項設定。我們可以編輯 /etc/my.cnf的檔案。

• 這裏是 Feodra Linux中設定了我們MySQL的一些選項設定。

• user=mysql是設定mysql為使用者帳號,並且管理MySQL資料庫。

• datadir是MySQL的資料放置目錄,預設是放置在 /var/lib/mysql目錄下。

• Pid_file是放置 MySQL的行程編號,預設是在 /var/run/mysqld/mysqld.pid。

1-8資料庫的組成• 資料庫是由數個資料表所組成。

• 例如 nuke資料庫是由這些資料表所組成。

• 而資料表由數個欄位(Field)所組成,其中 nuke_access資料表的欄位有 access_id和 access_title。

• 我們輸入 status就可以看到 MySQL資料庫的狀態。

top related