1、进入容器 找到容器: kubectl get pod -n my-namespace | grep mysql
进入容器:
eg: kubectl exec -it mysql-server-687fd8dfc8-7v7mr -n my-namespace bash 进入mysql后执行导出语句
2、在容器内执行导出
2.1 备份目录
mkdir /db_bak 2.2 执行导出语句
mysql -e "show databases;" -u<你的账号> -p<你的密码>| grep -Ev "Database|information_schema|mysql|sys|performance_schema" | xargs mysqldump -u<你的账号> -p<你的密码> --databases > <导出路径>
eg : mysql -e "show databases;" -uroot -pMyPwd@123456| grep -Ev "Database|information_schema|mysql|sys|performance_schema" | xargs mysqldump -uroot -pMyPwd@123456 --databases > /db_bak/mysql_backup_lunan_20210818.sql
3、复制出来
kubectl cp [podname]:[源路径和文件名] [目标路径和文件名] -n [namespace]
eg: kubectl cp mysql-server-687fd8dfc8-7v7mr:/db_bak/mysql_backup_lunan_20210818.sql /home/db_bak/mysql_backup_lunan_20210818.sql -n my-namespace
4、恢复
4.1 导入容器
kubectl cp /home/db_bak/mysql_db/mysql_backup_lunan_20211221.sql mysql-server-687fd8dfc8-fwhmn:/mysql_backup_lunan_20211221.sql -n my-namespace
4.2 进入容器
kubectl exec -it -n bash
4.3 登录
mysql mysql -uroot -p
4.4 执行
sql source /mysqlbackuplunan_20211221.sql