TestLink Docker 資料庫備份與還原

Sheng-Shan Chen
Aug 10, 2020

--

實作Centos7上的docker testlink 備份資料庫移植到Win10上的docker testlink資料庫

輸入以下程式碼,確認Image的名稱

docker ps -a

以docker root身分進入該container裡面,若不使用 -u 無法操作

docker exec -u 0 -it root_mariadb_1 bash

接著倒出資料庫內的資料

mysqldump -u root -h mariadb bitnami_testlink > backup.sql

請注意, 應確實檢查資料已經導入backup.sql

檔案已經輸出在container的根目錄上了

輸入 exit 離開 container

透過docker cp 指令將backup.sql從內部複製出來

docker cp root_mariadb_1:/backup.sql .

把這個檔案移到Win10環境,實作Win10上的testlink還原資料庫

很多種方法可以把檔案移過去, 這邊不闡述什麼方式, 在這裡我使用lftp傳檔案。

if you account is ryan , password is ryan123, IP is 192.168.58.145

Put your file into the server.

lftp [ryan:ryan123@192.168.58.145](<ryan:ryan123@192.168.58.145>)
mput backup.sql

在這之前先確認win10上的ftp server(轉移檔案用)與testlink服務都有啟用

開啟cmd 找到centos7傳過來的檔案

用 docker ps -a 找到資料庫

同樣手法, 把backup.sql從外部複製到container目錄內

docker cp backup.sql 72fe27da8590:/backup.sql

進入container

docker exec -u 0 -it 72fe27da8590 bash

要匯入資料庫記得先移除原本的資料庫唷,所以輸入以下程式碼進入資料庫

mysql -u root -h mariadb

drop掉testlink用的資料庫, 資料庫名稱可以從原本安裝的yml檔看到。預設是bitnami_testlink

drop database bitnami_testlink;

回去看一下瀏覽器,發現網頁已經掛一半了XD

創建一個新的資料庫

create database bitnami_testlink;

然後離開 exit

把之前備份的資料庫還原上去

mysql -u root -h mariadb bitnami_testlink < backup.sql

回去看看瀏覽器

起死回身了XD

這邊忘記在centos7上先建立些資料, 來證明資料是有成功轉移的, 不過我們從logs這邊看, 可以看到在Centos7的testlink紀錄的資訊,代表資料庫確實是由Centos7上轉移的。

--

--