How do I restore a dump file from mysqldump using kubernetes?

前端 未结 3 1092
孤城傲影
孤城傲影 2021-01-25 04:07

I know how to restore a dump file from mysqldump. Now, I am attempting to do that using kubernetes and a docker container. The database files are in persistent (nfs) mount. The

相关标签:
3条回答
  • 2021-01-25 04:22

    As described in here you can use the following command to restore a DB on kubernetes pod from a dump in your machine

    $ kubectl exec -it {{podName}} -n {{namespace}} -- mysql -u {{dbUser}} -p{{password}} {{DatabaseName}} < <scriptName>.sql
    Example :
    $ kubectl exec -it mysql-58 -n sql -- mysql -u root -proot USERS < dump_all.sql
    
    0 讨论(0)
  • 2021-01-25 04:24

    What I did was this:

    • Create an NFS mount with two sub0drectories: mysql and initd.
    • In initd, I added several ,sql files, including the dump.
    • Mount initd as /docker-entrypoint-initdb.d in the deployment.This causes all the files to be read at initialisation time provided that it is the first time we run.
    • The mysql directory is mounted as /var/lib/mysql and contains all the mariaDB files.

    If I need to revert, I trash all the contents of the mysql directory and re-create the deployment.

    0 讨论(0)
  • 2021-01-25 04:34

    This should work:

    kubectl  --kubeconfig=k8s-XXXXXXX-kubeconfig.yaml exec -i ddevdb-XXXXX -- mysql -u root -h mysqlservice -proot drupal < you-dump.sql
    

    kubeconfig is optional, digitalocean for examples provides that so you can run your commands from your local.

    To see if everything looks good:

    kubectl --kubeconfig=k8s-XXXXXXX-kubeconfig.yaml run -it --rm --image=mariadb:10.4 --restart=Never mysql -- mysql -h mysqlservice -proot
    

    After which you'll have a terminal inside mysql.

    0 讨论(0)
提交回复
热议问题