- 前置處理
- 遠端登入 kvm3 虛擬機。
- 以 root 身份登入 mariadb。
-
.txt 及 .sql 檔案存檔都存到
/tmp/$mysid.$evalname
目錄,其中變數 $mysid
為自己的學號,$evalname
為評分程式名稱不加副檔名,目錄若不存在,必須自行建立。
- service.txt
- 下載檔案 service.txt。
- 查詢 service.txt 所屬的資料庫名稱,若其不存在則自行建立。
- 將 service.txt 匯入所屬的資料庫。
- 使用 mariadb -e 命令查詢 service.txt 匯入的資料表所有紀錄,並導向到 service.select.txt。
- 修改 service.txt 匯入的資料表,再重複上一步驟匯入資料庫,查看資料表是否還原?
- service1.txt
- 修改 service.txt 內容的資料表名稱為
mnet_service1
,並另存新檔 service1.txt。
提示:用搜尋取代方式,將檔案中所有資料表名稱更名。
- 再將 service1.txt 匯入所屬的資料庫。
- 刪除並移除 service1.txt 資料表中的 primary key 及
auto_increment
,才能匯入重複紀錄。
- 使用 mariadb -e 命令查詢 service1.txt 匯入的資料表,修改後的欄位描述 (desc),並導向到 service1.desc.txt。
- 匯出:使用語法 SELECT ... INTO OUTFILE 查詢 service1.txt 匯入的資料表,其結果存入檔案。
- service1a.txt:
select *....
,不指定任何格式。
- service1b.txt:指定以符號「<>」做為欄位分隔,以驚嘆號「!」將每個欄位的紀錄括起來,每行以
\n
換行。
- 複製並重新命名成資料表名稱,才能使用 mysqlimport 匯入紀錄。
- 找到 service1a.txt,並複製到目錄
/tmp/$mysid.$evalname/1a
(目錄自行建立)。
- 找到 service1b.txt,並複製到目錄
/tmp/$mysid.$evalname/1b
(目錄自行建立)。
- 使用
mysqlimport .. --local
,重複匯入紀錄,將匯入命令含參數 (含登入密碼) ,寫成可執行檔。
- /var/www/html/service1a.sh:重複匯入 service1a.txt 中的紀錄。
- /var/www/html/service1b.sh:重複匯入 service1b.txt 中的紀錄。
- 完成所有練習後,匯出以下資料庫:
- service.txt 所屬的資料庫,存成檔案 service.sql。
- 所有的資料庫,存成檔案 myalldb.sql。