TestLink Docker 資料庫備份與還原
實作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上轉移的。