phpmyadmin 簡介 國立聯合大學資訊管理學系陳士杰老師
Outlines 進入 phpmyadmin 管理使用者並保護 MySQL 的安全 匯入 匯出 phpmyadmin 首頁的管理項目 建立 編輯與刪除資料庫 ( 表格 ) 執行 SQL 指令 查詢 新增 修改 刪除資料
進入 phpmyadmin 輸入網址 http://localhost/phpmyadmin 並執行, 會開啟輸 入帳號密碼的畫面 :
phpmyadmin 的首頁
顯示 MySQL 執行時期狀態 點選 phpmyadmin 首頁中的 顯示 MySQL 執行狀態 連結, 即可檢視 MySQL 執行期間的狀態, 同時也顯示系統從啟動後, 各個不同類型的查詢動作之統計值
管理使用者並保護 MySQL 的安全 MySQL 管理存取權限的方式相當複雜 基本的想法是 : 每個使用者 每個需要存取 MySQL Server 的程式都必須擁有帳號 帳號資料包含三個資訊 : 使用者名稱 密碼與欲與 MySQL Server 連線的客戶端主機名稱 一般來說,MySQL Server 必須滿足下列條件, 才算是有 保護好 : 每個使用者都有密碼 每個使用者都有名稱 ( 若 User 欄位為空的話, 表示誰都可以登入 ) 每個使用者的 Host 欄位都不是 %( 否則可以從網路的任何地方登入 ) 擁有完整權限 ( 即 : 所有全域權限皆為 Y) 的使用者愈少愈好, 理想狀況是只有 root
在 Linux 環境下安裝 MySQL 後, 會馬上提供下列四種登入 方式 它們全部沒有密碼保護, 也就是說會違反前面提到 的安全原則 為了安全起見, 沒有使用者名稱的項目都應該刪除 從 phpmyadmin 的首頁中, 點選 權限 即可進行帳號權限 的控管
刪除不安全的使用者 : 在使用者清單中勾選這些不安全的使用者, 然後再點選 執行 即可刪除這些使用者 為使用者設定密碼 : 點選某個使用者最後的 編輯權限 圖示, 即可對該使用者進行詳細的權限設定, 包含修改密碼
新增使用者 : 從 phpmyadmin 首頁點選 權限, 然後在權限頁面中點 選 新增使用者 連結, 就會得到以下頁面 使用者名稱 ( 請設 test 為新使用者 ) 客戶端主機 ( 目前選 本地 即可 ) 密碼 ( 請設 123) 目前不要勾選任何全域 ( 整體 ) 權限!! 我們將在後續為這個使用者設定存取特定資料庫的權限
新增特定資料庫存取權限 : 前一頁面按 執行 後, 就會得到右邊設定詳細存取權限的頁面 可用下拉式選單選取目前新設帳號有權限存取的 DB ( 此 範例選 Test 資料庫 ) 下拉選單只能選取已存在的 DB, 若打算稍後才建立 DB 的話, 可先在文字框裡輸入 DB 的名稱
選好資料庫後, 會自動帶到下面畫面, 以指定使用者在這個資料庫 內, 所擁有的權限 通常都會勾選, 使用者才能讀取 編輯 DB 內的資料 讓使用者建構 修改與刪除資料庫和資料表格, 視需求給與不同使用者這些權限 若新設使用者僅能擁有特定資料庫中的某個資料表格之操作權限, 則上述的權限皆不用設定, 須選擇 指定資料表權限 的項目, 從下拉式視窗或文字框中選定欲擁有權限的表格, 就會帶出後面的畫面 讓使用者能夠將自已的權限放給其它使用者 為了安全起見, 通常不應賦予此權限 讓使用者能以 Lock 指令鎖定資料表格 以確保多個 SQL 指令能夠一次執行完畢, 中途不會有其它指令介入執行 較好的替代方案是改用 InnoDB 類型的資料表的交易功能
下面畫面用以設定使用者在這個特定資料庫內, 針對某個選定的資料 表所擁有的相關操作權限
匯入 匯出 phpmyadmin 利用匯入 匯出的功能來檢視 MySQL 資料庫或資料表的綱要 (Schema), 並支援備份的工作 對於資料表的顯示與儲存格式 SQL 檔 CSV 文字檔 EXCEL 檔 (XLS 檔, CSV 檔 ) -- 可用於備份 復原 -- 可用於一些資料分析的套裝軟體 ( 如 Weka, EXCEL) -- 可用於一些資料分析的套裝軟體 ( 如 Weka, EXCEL) 文書處理器可接受的文字檔 (WORD 檔, LaTeX 檔 ) XML 檔 在 phpmyadmin 要匯入 匯出大量資料有點麻煩 ( 執行時間有限, 且上傳檔案有限 ) 另一個解決方式, 是改用指令模式 mysqldump 匯出資料, 並以 mysql 匯入資料
匯出 ( 備份 ) 資料表 從左方選單選擇欲備份的表格, 再點選右上方的 輸出 分頁 可視需要修改選項 ( 通常用預設值即可 ) 點選 輸出 分頁 選擇欲備份的表格 若備份表格有外來鍵, 則需勾選此項目 這兩項可以設定 INSERT 指令的匯出格式 取消此勾選, 所匯出的資料就會以原字集出現
上述畫面按 執行 後, 即出現資料表的綱要, 可將此綱要複製到記事本, 以副檔名為.sql 的文字檔儲存為表格的備份檔 若不想這麼麻煩, 則在上述畫面的最後, 勾選 下載儲存, 再執行時就會直接以.sql 的文字檔儲存為表格備份檔
匯入 ( 復原 ) 資料表 選擇欲匯入表格的資料庫, 點選右上方的 載入 分頁, 將欲匯入的表格備份檔 (.sql) 載入, 按下執行即可
匯出 ( 備份 ) 資料庫 從左方選單選擇欲備份的資料庫, 再點選右上方的 輸出 分頁 可視需要修改選項 ( 通常用預設值即可 ) 與匯出表格主要不同點 : 備份 DB 時, 同時要選擇需備份的表格 通常是全選!!
上述畫面按 執行 後, 即出現資料庫的綱要, 可將此綱要複製到記事本, 以副檔名為.sql 的文字檔儲存為資料庫的備份檔 若不想這麼麻煩, 則在上述畫面的最後, 勾選 下載儲存, 再執行時就會直接以.sql 的文字檔儲存為資料庫備份檔
匯入 ( 復原 ) 資料庫 先在 phpmyadmin 首頁建立新的資料庫, 建完後會自動跳到新 DB 點選右上方的 載入 分頁, 將欲匯入的資料庫備份檔 (.sql) 載入, 按下執行即可
phpmyadmin 首頁的管理項目
建立 編輯與刪除資料庫 ( 表格 ) 建立資料庫 編輯現有資料表 設定外來鍵 檢視資料庫結構的說明文件 刪除資料表格 資料庫
建立資料庫 僅需在 phpmyadmin 的首頁, 輸入新資料庫的名稱 ( 此範例以 jacy_test 為名 ), 再利用下方的下拉選單選取資料庫的字集, 再點選 建立 即可 剛建好的 DB 是空的, 裡面沒有任何資料表格
建立資料表格 從左方的下拉選單選擇欲建表格的資料庫的名稱, 此時右方畫面會出現該資料庫現有的表格, 下方會有建立新表格的輸入文字框 輸入新表格的名稱與欄位數, 再點選 執行, 則會帶出另一個建立新資料表欄位的畫面 在此, 我們建立兩個表格 :test1 與 test2 test1 有兩個欄位 :test1_id INT; test1_name Varchar(10);InnoDB test2 有兩個欄位 :test2_id INT; test2_name Varchar(10) ;InnoDB
大部份資料型態都不必指定 只有 VARCHAR 等動態資料型態需要指定最長的長度 指定欄位的預設值 可省略 欄位是否能夠存入 NULL 值 這裡的選項可以為每個欄位建立主鍵 一般索引 唯一鍵或是全文搜尋索引 設定完成後, 點選 儲存 就會實際建立資料表 指定排序方式或是字集 通常使用預設值即可 通常留白 如果欄位是整數型態的話, 可指定 Unsigned, 禁止存入負數 可以指定 AUTO_INCREMENT, 這通常會設定在主鍵上 可以設定資料表的類型 (MyISAM 或 InnoDB 等 )
編輯現有資料表格 從左方的下拉選單選擇某一資料庫, 再選擇此資料庫中想修改的資料表格 資料表格的修改功能分散在幾個分頁項目中 結構 : 可新增 刪除欄位與索引 管理 : 這個分頁有不少功能, 包含修改資料表名稱 資料表類型 將資料表複製或搬移到其它資料庫等等 清空 : 會刪除表格內的所有記錄, 但是會保留表格的結構
在表格 test2 中新增一個欄位 Job_ID 於資料表的尾端, 資料型態為 INT, 且此欄位未來會成為外來鍵, 參照到表格 test1 中的主鍵 test1_id, 所以要先設成索引鍵 以下的畫面要註明新增 1 個欄位, 且選擇 於資料表尾端, 再按 執行
接著, 將新的欄位名稱鍵入, 資料型態選 INT, 最後面的圖示選擇 索引鍵 (Index), 最後再按 儲存 即可
設定外來鍵 使用 InnoDB 資料表, 就能以外來鍵來維護表格之間的資料完整性 選定要設外來鍵的表格, 並選擇 關聯檢視 選項來加以設定
接著, 從欲成為外來鍵欄位的第一個下拉選單中, 選擇欲參考的表格及其欄位 ( 此範例為 test1->test1_id) 至於 On Delete/On Update 則視需求而定 在此我們皆設成 CASCADE 最後, 按下 儲存 即完成
檢視資料庫結構的說明文件 先至左欄的下拉選單選取資料庫, 再點選 數據字典 連結, 就會顯示 此資料庫所有資料表格的重點資訊
表格複製 移動 從左方選單選擇欲複製的表格後, 點選右上方的 管理 分頁, 就可看到複製資料表的相關功能 複製的方式有 : 只有結構 結構和資料 只有資料三種, 並提供三個複製完後可能會執行的動作 選擇完成後按下 執行 便完成複製的工作 也可利用畫面上方的移動資料表格的功能, 將表格從原 DB 移動到新 DB 中
刪除資料表格 選取某資料庫中的特定欲刪除表格, 接著點選此表格後方的刪除圖 示, 會跳出確認對話框, 按下確定即刪除
刪除資料庫 從左方選定某個欲刪除的資料庫, 接著點選右上方的刪除分頁, 會跳 出確認對話框, 按下確定即刪除
執行 SQL 指令 若想要操作某個資料庫內的表格時, 可以點選頁面右方的 SQL 分頁, 即可對該資料庫內的資料執行相關的 SQL 指令 可以一次輸入 執行好幾個 SQL 指令, 只需在中間以分號隔開即可 輸入 SQL 指令後, 按 執行 即可 用左上方的 SQL 圖示, 可以叫出獨立的執行視窗來處理
查詢 新增 修改 刪除資料 對於這四種資料的操作,phpMyAdmin 提供兩種操作方式, 一個是用一般的 SQL 指令, 而另一種是使用參數化的使用者介面來執行 以下以參數化的使用者介面為主要說明對象
查詢資料 除了可利用 SQL 指令中的 SELECT 語法來查詢資料外, 亦可使用 瀏覽 與 搜索 兩個分頁來查詢資料 瀏覽是將整個表格資料查詢出來 選擇欲查詢的表格, 再點選瀏覽的分頁即可 點選 瀏覽 分頁 選擇欲查詢的表格 查詢結果列表
如果表格資料太多, 建議使用搜索分頁, 以條件來過濾欲呈現資料 下條件的方式有兩種, 任選其一再按 執行 即可 點選 搜索 分頁 欲於查詢結果呈現哪些欄位 勾選 Distinct 會使重覆資料僅出現一次 用命令列的方式下條件 選擇欲查詢的表格 用參數的方式下條件
查詢結果列表
修改與刪除資料 在查詢結果列表中, 每一筆資料前面都有修改與刪除的圖示 按下刪除圖示, 會跳出確認對話框, 按下確定即可刪除該筆資料
按下修改圖示, 會出現該筆資料及其使用的函數 直接修改後按 執 行 即可
新增資料 選擇欲新增資料的表格, 再點選 新增 的分頁, 即出現以下畫面 輸入欲新增的欄位資料後, 按下執行即可 點選 新增 分頁 輸入欲新增的欄位資料 選擇欲新增的表格