Docker 中的 MySQL 資料庫備份與還原

備份

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

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

還原

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

Linux

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

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

Windows (PowerShell)

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

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

留言