mysql資料庫系統環境概論 -...

29
國立聯合大學 資訊管理學系 陳士杰老師 MySQL資料庫系統環境概論

Upload: others

Post on 18-Oct-2019

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系陳士杰老師

MySQL資料庫系統環境概論

Page 2: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

▊Outlines

MySQL資料庫系統的環境簡介

my.ini檔簡介與製作

設定管理者的密碼

MySQL資料表類型

Page 3: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

▊MySQL資料庫系統的環境簡介

安裝完MySQL 5資料庫後,在安裝目錄下有一些檔案夾,

比較重要的檔案夾簡介如下:

bin:包含了幾個在MySQL資料庫系統中,可能會執行到的公用程

式,例如:mysql、mysqldump、 mysqladmin、mysqld-nt。

data:是 MySQL 存放資料處,存放著所建立的各個資料庫及資料

庫結構相關設定檔,而每個資料庫都各自存放在獨立目錄下。

share:MySQL 所產生的訊息檔 (message) 及錯誤檔 (error log) 都

放在這個目錄。

Page 4: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

若是以超級使用者 “root” 登入:

由 “程式集”“MySQL” 可找到 “MySQL Command Line

Client”,啟動後直接輸入root的密碼即可。

若是以一般使用者登入 (超級使用者root亦可):

由 “程式集”“附屬應用程式” 可找到 “命令提示字元”

啟動 “命令提示字元” 後,輸入指令 mysql –u 使用者名稱 –p,按

Enter後再輸入密碼即可。

-u: 是指定使用者,在這我們輸入使用者名稱

-p: 是在按Enter後,再要求輸入密碼,我們輸入所給定的密碼

如何登入MySQL資料庫系統

Page 5: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫 (不同的版本可能

會有其它的預設資料庫):

mysql: 負責紀錄整個MySQL 的使用權限資料,包含了host、user、db、

tables_priv、colimns_priv和func…等資料表。

test: 測試用的空資料庫,不包含任何資料。

MySQL資料庫系統的預設資料庫

Page 6: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

預設資料庫 “mysql” 中,六個主要的表格意義如下:

user表格:包含了有關使用者全域性權限設定的資料。管理有哪

些人可以從哪些電腦連到MySQL伺服器系統。

db表格:儲存使用者對特定資料庫的權限。管理哪些使用者能存

取哪些資料庫。

host表格:主要擴充db表格的內容,提供允許連線的主機名稱

(db內沒有這份資料)。

tables_priv表格:管理哪些使用者能存取資料庫的哪些表格。

columns_priv表格:管理哪些使用者能存取資料表的哪些欄位。

func表格:儲存使用者自行定義的函式資訊。

Page 7: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

▊ my.ini簡介與製作

MySQL資料庫系統在啟動時,會透過此檔案的內容來存

取與掌握MySQL資料庫系統的環境參數。而DBA也可藉

此檔來調校MySQL Server的環境,使得MySQL伺服器能

達到最適化的執行環境。

這個檔案在安裝MySQL資料庫系統的過程中,會依當時

環境自動的設定。在不同的作業系統中:

Windows: my.ini

Linux: my.cnf

Page 8: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

my.ini在哪?

不同的my.ini檔之範本,可用在不同的系統環境

Page 9: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

部份系統環境調校參數簡介

key_buffer_size

將此參數設定為較大,對於來自所有用戶任務的讀寫處理能力,將有所

助益;但若設定的太大,反而會拖累系統的執行效能,因此對於

key_buffer_size容量的設定,必須求取平衡。

本電腦該參數的預設值為10MB,可大約抓系統主機記憶體容量的1/5 (如:

假設伺服器具2GB記憶體,則以400MB為基準),以加大key_buffer_size。

max_connections

系統承受之同時上線使用人數。可依系統所能承受之情況做調整。

sort_buffer

可調整系統在面對所有需要被排序的任務之緩衝區,從而提升ORDER

BY或GROUP BY的行進速度

本電腦該參數的預設值僅256KB,一般可考慮提高到2MB~16MB

Page 10: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

MySQL系統調校範例:設定最大連線數

用記事本打開my.ini

找到 max_connections=100 (此為系統預設的最大連線數)

將100修改成50

存檔並重啟MySQL

Page 11: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

製作my.ini

若沒有my.ini或原本的my.ini有毀損…等情況發生,可自

已用記事本建立!!

用記事本開一個新的文字檔,選好某一個my***.ini範本,

將其內容複製到該新的文字檔中,儲存時將檔名與副檔名

改成 my.ini 即可。

Page 12: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

▊設定管理者的密碼

為了管理MySQL資料庫,我們必需建立至少一個MySQL

的帳號。在安裝MySQL 5 (或AppServ) 時,我們已建立

了一個超級使用者 (管理者) “root”。若要改變root的密碼,

可以使用下列指令:

SET PASSWORD FOR root@localhost = PASSWORD(‘新密碼’);

上述指令是將位於 “localhost”的主機上,帳號為“root”的使用

者之密碼做更新。

當我們要再次登錄時,只要輸入新密碼就可以登錄了。

Page 13: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

忘記root的密碼?-解法 1

Page 14: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

忘記root的密碼?-解法 2

可利用下列步驟處理:

停止MySQL 5的服務

在my.ini檔中的[mysqld]段落,加上 skip_grant_tables

重新啟動MySQL 5的服務

輸入指令 mysql –u root,不用密碼,按Enter後即可進入

使用mysql這個預設的資料庫

輸入指令以修改預設資料庫mysql中的user資料表

再次停止MySQL 5的服務

在my.ini檔中的[mysqld]段落,刪除 skip_grant_tables

重新啟動MySQL 5的服務

Page 15: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

停止MySQL 5的服務

Page 16: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

在my.ini檔的[mysqld]段落加上 skip_grant_tables

加上 skip_grant_tables,然後存檔

Page 17: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

重新啟動MySQL 5的服務

Page 18: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

輸入指令 mysql –u root

輸入指令 mysql –u root,不用密碼,按Enter後即可進入

Page 19: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

使用mysql這個預設的資料庫

Page 20: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

輸入指令以修改預設資料庫mysql中的user資料表

修改user資料表中,user為’root’且host為’localhost’這個帳號的密碼。此時因權限關係不能用前面所教的設定密碼之指令。

Page 21: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

再次停止MySQL 5的服務

跳出MySQL資料庫,且再次停止MySQL 5的服務。

Page 22: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

刪除my.ini檔中[mysqld]段落之skip_grant_tables

刪除後並存檔。

刪除 skip_grant_tables

Page 23: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

重新啟動MySQL 5的服務

重新啟動MySQL DB,並利用剛剛設定的新密碼。

Page 24: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

使用 “show processlist” 就可以看到目前有多少人登入

MySQL DB,目前正在使用哪個資料庫…等資訊。

DB內僅管理者時:

DB內有其他使用者(如:jacy)時:

Page 25: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

使用 “kill process_ID” 就可以刪除掉某個使用者正在

MySQL DB所從事的工作(Process) 。

process_ID 是指某個使用者工作的編號(ID)

只有有權限的管理者方可刪除它人的工作。

Page 26: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

▊MySQL資料表類型

MySQL支援許多種資料表的類型,它們都有自已的特色與

優缺點:

Page 27: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

MyISAM: MySQL的預設表格類型

支援全文檢索

在預設資料庫mysql中,記錄關於使用者權限的資料表格,是以MyISAM表格類型儲存

InnoDB: 支援交易處理與外來鍵

BDB: 是MySQL歷史上第一個支援交易功能的資料表類型。由於現今InnoDB已經成熟,

所以沒有繼續使用BDB的理由

Memory: 所有資料僅會保存在記憶體中,在存取單筆記錄的速度很快。常被當成暫存資料表

Merge: 允許MySQL DBA或開發人員將一系列等同的MyISAM資料表以邏輯方式組合在一

起,並作為1個對象引用它們

Archive: 為大量且極少使用的歷史資料、歸檔資料、或安全審計訊息提供儲存和檢索

Page 28: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

MyISAM v.s. InnoDB

若要追求空間、效率與速度,不需要重視安全性或從事表格與表

格間的關聯時(即:外來鍵),可使用MyISAM

例如:網路文章、新聞。

若著重交易工作、安全性、多人同時修改資料與需採用外來鍵的

情況,則應使用InnoDB

例如:帳單、電子票券資訊。

在MySQL資料庫系統中,不同類型的表格,是由不同類

型的儲存引擎 (Storage Engine) 所產生與控制。

Page 29: MySQL資料庫系統環境概論 - debussy.im.nuu.edu.twdebussy.im.nuu.edu.tw/sjchen/Database/Final/MySQL_Ch2.pdf · MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫(不同的版本可能

國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

測試範例

請在test資料庫中,建立兩個空表格test1, test2