實機操作練習題

  1. 前置處理
    1. 遠端登入 kvm3 虛擬機。
    2. 以 root 身份登入 mariadb。
    3. .txt 及 .sql 檔案存檔都存到 /tmp/$mysid.$evalname 目錄,其中變數 $mysid 為自己的學號,$evalname 為評分程式名稱不加副檔名,目錄若不存在,必須自行建立。
  2. service.txt
    1. 下載檔案 service.txt
    2. 查詢 service.txt 所屬的資料庫名稱,若其不存在則自行建立。
    3. 將 service.txt 匯入所屬的資料庫。
    4. 使用 mariadb -e 命令查詢 service.txt 匯入的資料表所有紀錄,並導向到 service.select.txt。
    5. 修改 service.txt 匯入的資料表,再重複上一步驟匯入資料庫,查看資料表是否還原?
  3. service1.txt
    1. 修改 service.txt 內容的資料表名稱為 mnet_service1,並另存新檔 service1.txt。 提示:用搜尋取代方式,將檔案中所有資料表名稱更名。
    2. 再將 service1.txt 匯入所屬的資料庫。
    3. 刪除並移除 service1.txt 資料表中的 primary key 及 auto_increment,才能匯入重複紀錄。
    4. 使用 mariadb -e 命令查詢 service1.txt 匯入的資料表,修改後的欄位描述 (desc),並導向到 service1.desc.txt。

  4. 匯出:使用語法 SELECT ... INTO OUTFILE 查詢 service1.txt 匯入的資料表,其結果存入檔案。
    1. service1a.txt:select *....,不指定任何格式。
    2. service1b.txt:指定以符號「<>」做為欄位分隔,以驚嘆號「!」將每個欄位的紀錄括起來,每行以 \n 換行。
  5. 複製並重新命名成資料表名稱,才能使用 mysqlimport 匯入紀錄。
    1. 找到 service1a.txt,並複製到目錄 /tmp/$mysid.$evalname/1a (目錄自行建立)。
    2. 找到 service1b.txt,並複製到目錄 /tmp/$mysid.$evalname/1b (目錄自行建立)。
  6. 使用 mysqlimport .. --local,重複匯入紀錄,將匯入命令含參數 (含登入密碼) ,寫成可執行檔。
    1. /var/www/html/service1a.sh:重複匯入 service1a.txt 中的紀錄。
    2. /var/www/html/service1b.sh:重複匯入 service1b.txt 中的紀錄。
  7. 完成所有練習後,匯出以下資料庫:
    1. service.txt 所屬的資料庫,存成檔案 service.sql。
    2. 所有的資料庫,存成檔案 myalldb.sql。