Docker 中的 Mariadb 備份與還原

Mariadb 備份並不能使用 mysqldump ,要使用 mariadb-dump ,不然會出現下面這個錯誤:
    
bash: mysqldump: command not found
    

備份

    
docker exec 容器名稱 mariadb-dump --all-databases -uroot -p"密碼" > 檔名
    

假設 容器名稱 是 my_mariadb ,密碼是 mypassword ,輸出的檔名 all-databases.sql
    
docker exec my_mariadb mariadb-dump --all-databases -uroot -p"mypassword" > all-databases.sql
    

還原

在 linux 和 windows 上指令有點不一樣:

Linux

    
docker exec -i 容器名稱 sh -c 'exec mariadb -uroot -p"密碼"' < ./檔名
    

    
docker exec -i my_mariadb sh -c 'exec mariadb -uroot -p"mypassword"' < ./all-databases.sql
    

Windows (PowerShell)

    
Get-Content ./檔名 | docker exec -i 容器名稱 sh -c 'exec mariadb -uroot -p"密碼"'
    

    
Get-Content ./all-databases.sql | docker exec -i my_mariadb sh -c 'exec mariadb -uroot -p"mypassword"'
    

留言