國立聯合大學 資訊管理學系陳士杰老師
MySQL資料庫系統環境概論
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
▊Outlines
MySQL資料庫系統的環境簡介
my.ini檔簡介與製作
設定管理者的密碼
MySQL資料表類型
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
▊MySQL資料庫系統的環境簡介
安裝完MySQL 5資料庫後,在安裝目錄下有一些檔案夾,
比較重要的檔案夾簡介如下:
bin:包含了幾個在MySQL資料庫系統中,可能會執行到的公用程
式,例如:mysql、mysqldump、 mysqladmin、mysqld-nt。
data:是 MySQL 存放資料處,存放著所建立的各個資料庫及資料
庫結構相關設定檔,而每個資料庫都各自存放在獨立目錄下。
share:MySQL 所產生的訊息檔 (message) 及錯誤檔 (error log) 都
放在這個目錄。
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
若是以超級使用者 “root” 登入:
由 “程式集”“MySQL” 可找到 “MySQL Command Line
Client”,啟動後直接輸入root的密碼即可。
若是以一般使用者登入 (超級使用者root亦可):
由 “程式集”“附屬應用程式” 可找到 “命令提示字元”
啟動 “命令提示字元” 後,輸入指令 mysql –u 使用者名稱 –p,按
Enter後再輸入密碼即可。
-u: 是指定使用者,在這我們輸入使用者名稱
-p: 是在按Enter後,再要求輸入密碼,我們輸入所給定的密碼
如何登入MySQL資料庫系統
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
MySQL 5資料庫系統安裝後會有兩個主要的預設資料庫 (不同的版本可能
會有其它的預設資料庫):
mysql: 負責紀錄整個MySQL 的使用權限資料,包含了host、user、db、
tables_priv、colimns_priv和func…等資料表。
test: 測試用的空資料庫,不包含任何資料。
MySQL資料庫系統的預設資料庫
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
預設資料庫 “mysql” 中,六個主要的表格意義如下:
user表格:包含了有關使用者全域性權限設定的資料。管理有哪
些人可以從哪些電腦連到MySQL伺服器系統。
db表格:儲存使用者對特定資料庫的權限。管理哪些使用者能存
取哪些資料庫。
host表格:主要擴充db表格的內容,提供允許連線的主機名稱
(db內沒有這份資料)。
tables_priv表格:管理哪些使用者能存取資料庫的哪些表格。
columns_priv表格:管理哪些使用者能存取資料表的哪些欄位。
func表格:儲存使用者自行定義的函式資訊。
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
▊ my.ini簡介與製作
MySQL資料庫系統在啟動時,會透過此檔案的內容來存
取與掌握MySQL資料庫系統的環境參數。而DBA也可藉
此檔來調校MySQL Server的環境,使得MySQL伺服器能
達到最適化的執行環境。
這個檔案在安裝MySQL資料庫系統的過程中,會依當時
環境自動的設定。在不同的作業系統中:
Windows: my.ini
Linux: my.cnf
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
my.ini在哪?
不同的my.ini檔之範本,可用在不同的系統環境
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
部份系統環境調校參數簡介
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
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
MySQL系統調校範例:設定最大連線數
用記事本打開my.ini
找到 max_connections=100 (此為系統預設的最大連線數)
將100修改成50
存檔並重啟MySQL
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
製作my.ini
若沒有my.ini或原本的my.ini有毀損…等情況發生,可自
已用記事本建立!!
用記事本開一個新的文字檔,選好某一個my***.ini範本,
將其內容複製到該新的文字檔中,儲存時將檔名與副檔名
改成 my.ini 即可。
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
▊設定管理者的密碼
為了管理MySQL資料庫,我們必需建立至少一個MySQL
的帳號。在安裝MySQL 5 (或AppServ) 時,我們已建立
了一個超級使用者 (管理者) “root”。若要改變root的密碼,
可以使用下列指令:
SET PASSWORD FOR root@localhost = PASSWORD(‘新密碼’);
上述指令是將位於 “localhost”的主機上,帳號為“root”的使用
者之密碼做更新。
當我們要再次登錄時,只要輸入新密碼就可以登錄了。
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
忘記root的密碼?-解法 1
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
忘記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的服務
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
停止MySQL 5的服務
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
在my.ini檔的[mysqld]段落加上 skip_grant_tables
加上 skip_grant_tables,然後存檔
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
重新啟動MySQL 5的服務
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
輸入指令 mysql –u root
輸入指令 mysql –u root,不用密碼,按Enter後即可進入
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
使用mysql這個預設的資料庫
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
輸入指令以修改預設資料庫mysql中的user資料表
修改user資料表中,user為’root’且host為’localhost’這個帳號的密碼。此時因權限關係不能用前面所教的設定密碼之指令。
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
再次停止MySQL 5的服務
跳出MySQL資料庫,且再次停止MySQL 5的服務。
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
刪除my.ini檔中[mysqld]段落之skip_grant_tables
刪除後並存檔。
刪除 skip_grant_tables
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
重新啟動MySQL 5的服務
重新啟動MySQL DB,並利用剛剛設定的新密碼。
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
使用 “show processlist” 就可以看到目前有多少人登入
MySQL DB,目前正在使用哪個資料庫…等資訊。
DB內僅管理者時:
DB內有其他使用者(如:jacy)時:
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
使用 “kill process_ID” 就可以刪除掉某個使用者正在
MySQL DB所從事的工作(Process) 。
process_ID 是指某個使用者工作的編號(ID)
只有有權限的管理者方可刪除它人的工作。
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
▊MySQL資料表類型
MySQL支援許多種資料表的類型,它們都有自已的特色與
優缺點:
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
MyISAM: MySQL的預設表格類型
支援全文檢索
在預設資料庫mysql中,記錄關於使用者權限的資料表格,是以MyISAM表格類型儲存
InnoDB: 支援交易處理與外來鍵
BDB: 是MySQL歷史上第一個支援交易功能的資料表類型。由於現今InnoDB已經成熟,
所以沒有繼續使用BDB的理由
Memory: 所有資料僅會保存在記憶體中,在存取單筆記錄的速度很快。常被當成暫存資料表
Merge: 允許MySQL DBA或開發人員將一系列等同的MyISAM資料表以邏輯方式組合在一
起,並作為1個對象引用它們
Archive: 為大量且極少使用的歷史資料、歸檔資料、或安全審計訊息提供儲存和檢索
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
MyISAM v.s. InnoDB
若要追求空間、效率與速度,不需要重視安全性或從事表格與表
格間的關聯時(即:外來鍵),可使用MyISAM
例如:網路文章、新聞。
若著重交易工作、安全性、多人同時修改資料與需採用外來鍵的
情況,則應使用InnoDB
例如:帳單、電子票券資訊。
在MySQL資料庫系統中,不同類型的表格,是由不同類
型的儲存引擎 (Storage Engine) 所產生與控制。
國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)
測試範例
請在test資料庫中,建立兩個空表格test1, test2